`
dimpen
  • 浏览: 25067 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Java socket回顾

阅读更多
好久没有接触socket网路编程了,查快要把最基础的都忘记了,今天,写个Server,Client回顾一下。

Server端代码:
import java.io.BufferedReader;   
import java.io.DataInputStream;   
import java.io.DataOutputStream;   
import java.io.InputStreamReader;   
import java.net.ServerSocket;   
import java.net.Socket;   
  
public class SecServer {   

    public static final int PORT =10000;   
  
    public static void main(String[] args) {   
        System.out.println("服务器:\n");   
        SecServer server = new SecServer();   
        server.service();   
    }   
  
    public void service() {   
        try {   
            ServerSocket server = new ServerSocket(PORT);   
           while (true) {   
                // 等待接收客户端连接
                Socket client = server.accept();   
                new ThreadServer(client);   
            }   
        } catch (Exception e) {   
            e.printStackTrace();
        }   
    }   
  
    private class ThreadServer implements Runnable {   
  
        private Socket socket;   
  
        public ThreadServer(Socket sock) {   
            socket = sock;   
            new Thread(this).start();   
        }   
  
        public void run() {   
            try {   
 
                DataInputStream input = new DataInputStream(socket.getInputStream());   

                DataOutputStream out = new DataOutputStream(socket.getOutputStream());   
                  
                // 读取客户端数据   
                System.out.println("客户端发过来的内容: " + input.readUTF());   
  
                System.out.print("请输入: \t");   
                // 接收键盘输入
                String s = new BufferedReader(new InputStreamReader(System.in)).readLine();   
                out.writeUTF(s);   
                input.close();   
               out.close();   
            } catch (Exception e) {   
                e.printStackTrace();
            }   
        }   
  
    }   
}  


客户端代码:
import java.io.BufferedReader;   
import java.io.DataInputStream;   
import java.io.DataOutputStream;   
import java.io.InputStreamReader;   
import java.net.Socket;   
  
public class SecClient {   
       
    public static final int PORT = 10000;   
       
    public static final String IP = "localhost";   
       
    public static void main(String[] args) {   
        System.out.println("客户端:\n");   
        Socket socket = null;   
        try {   
            System.out.println("当客户端接收到\"exit\" 的时候,将与服务器断开\n");   
            while (true) {   
                // 将socket连接到指定主机上的指定端口号   
                socket = new Socket(IP, PORT);
                   
                DataInputStream input = new DataInputStream(socket.getInputStream());  
 
                DataOutputStream out = new DataOutputStream(socket.getOutputStream());

                System.out.print("请输入: \t");
                String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
                out.writeUTF(str);
   
                System.out.println("服务器端返回过来的是: " + ret);   
                // 如接收到 "exit" 则客户端将于服务器端断开
                if ("exit".equals(input.readUTF())) {   
                    System.out.println("客户端退出");   
                    //Thread.sleep(500);   
                    break;   
                }   
            }   
        } catch (Exception e) {   
            e.printStackTrace();   
       } finally {   
            if (socket != null) {   
                try {   
                    socket.close();   
                } catch (Exception e) {   
                    socket = null;   
                    e.printStackTrace();   
                }   
            }   
        }   
    }   
  
}  


先启动服务端,在启动客户端,可实现客户、服务对话。
分享到:
评论

相关推荐

    Java Socket网络编程研究.pdf

    在Java中,Socket编程是实现网络通信的基本手段,它允许应用程序之间通过网络进行数据交换。本文将详细探讨Java Socket网络编程中的关键知识点。 首先,我们回顾一下网络通信的发展历史。通信技术的发展经历了从...

    java-socket传输文件-图片-源码

    在深入探讨文件传输之前,我们先简要回顾一下Java Socket的基础概念。Socket是一种允许不同计算机间通信的技术,它为应用程序提供了一个低层的网络通信接口。在Java中,Socket API提供了丰富的类库支持,使得开发...

    Java Socket 编程

    Java Socket编程是Java网络编程中的重要组成部分,它允许两台计算机通过网络进行通信。Socket在计算机网络中扮演着客户端和服务器的角色,使得应用程序能够发送和接收数据。本篇内容将深入探讨Java Socket编程的基础...

    java基于socket编写的聊天室程序

    Java基于Socket编写的聊天室程序是一种典型的客户端-服务器(C/S)架构的应用,它利用了Java的网络编程能力,特别是Socket类,来实现用户之间的实时通信。在这个程序中,Server.jar是服务器端程序,它监听特定的端口...

    java_socket(IBM)

    ### Java Socket 编程详解(IBM) #### 一、引言 Java Socket 是一项重要的技术,用于实现网络中不同计算机间应用程序的通信。本篇文章基于IBM的资源,深入介绍了Java Socket 的基本概念、应用场景以及实际编程技巧...

    Java 网络编程回顾

    这篇博客“Java网络编程回顾”可能涵盖了Java进行网络通信的基础知识、关键类库和实用技巧。让我们一起深入探讨Java在网络编程中的核心概念。 在Java中,网络编程主要依赖于`java.net`和`java.nio`包。`java.net`包...

    实验一_SOCKET编程实验

    在C++或Java等语言中,可以使用socket()函数创建一个Socket对象。例如,在C++中: ```cpp int socket_fd = socket(AF_INET, SOCK_STREAM, 0); ``` 这里的`AF_INET`代表IPv4地址家族,`SOCK_STREAM`表示使用TCP协议...

    socket实现文件上传下载

    在深入了解文件传输之前,我们先简要回顾一下 Socket 的基础知识。Socket 是一种用于网络通信的机制,它使得不同计算机上的应用程序能够通过网络互相通信。在 Java 中,主要使用 `java.net.Socket` 和 `java.net....

    Java面试知识回顾.zip

    7. **网络编程**:Java的Socket编程用于实现客户端-服务器通信,理解TCP和UDP的区别,以及如何创建和使用套接字是面试中可能涉及的内容。 8. **设计模式**:设计模式是解决常见软件设计问题的模板,例如单例模式、...

    java tcp实现简单实例

    本文将通过一个简单的 Java TCP 通信示例来详细介绍如何利用 Java 的 `ServerSocket` 和 `Socket` 类来搭建一个基本的服务器-客户端模型。 #### 二、基础知识回顾 ##### 2.1 ServerSocket 类 `ServerSocket` 类是...

    Android-Lemon一个简单轻量级的AndroidSocket框架

    在了解`Android-Lemon`之前,我们先来回顾一下Android中的Socket通信基础。Socket是网络编程中的一个重要概念,它是两台计算机间进行双向通信的端点。在Android中,我们可以使用`java.net.Socket`类进行Socket编程,...

    java 考试系统和java聊天窗口(实验文档和源码)

    2. **Socket通信**:Java的Socket类提供了客户端-服务器通信的基础,用于建立连接并传输数据。 3. **GUI设计**:使用Java Swing或JavaFX创建用户界面,展示聊天窗口、输入框和发送按钮。 4. **文本解析**:可能...

    基于Java回顾之网络通信的应用分析

    在Java中,TCP通信通常通过Socket类和ServerSocket类来实现。如代码所示,`SimpleTcpClient`类创建了一个Socket实例,与服务器进行连接,并通过`BufferedReader`和`PrintWriter`进行数据交换。服务器端的`SimpleTcp...

    Java经典编程50道

    这些题目涵盖了Java基础到进阶的多个方面,通过逐一解决,开发者可以系统地回顾和巩固Java知识,同时也能提升实际项目开发中的问题解决能力。对于每个类,阅读源码、理解其实现逻辑并尝试自己动手实现,是提高编程...

    java开发实战经典习题答案

    Java开发实战经典课后习题答案涉及到Java编程语言的多个基础知识点,这些知识点对于初学者和...对于已经有一定基础的开发者,通过回顾这些基础内容,可以巩固其基础知识,同时复习和掌握一些Java编程中较为复杂的内容。

    java 文件传输 源代码和课程设计报告

    在Java中实现P2P文件传输,可以使用Socket编程来创建两个或多个节点之间的连接,允许数据的双向流动。这通常涉及到TCP或UDP协议的选择,TCP保证数据的可靠传输,UDP则提供更高的传输速度但不保证数据的顺序或完整性...

    java网络编程.zip

    首先,01-Java语言基础.ppt这部分内容将引导学习者回顾或建立Java编程的基础,包括语法、类、对象、异常处理等核心概念,这是学习网络编程的基石。理解这些基础知识,能帮助开发者编写出稳定、可维护的网络程序。 ...

    Think Java.zip

    这本《Think Java》不仅适合初学者,也适合有一定经验的开发者回顾基础,提升对Java的理解。通过阅读这本书,读者可以全面掌握Java编程,并具备解决实际问题的能力。无论是在PC、手机还是Kindle上阅读,都能获得良好...

    Java 远程文件对接

    - Java支持TCP/IP协议,可以通过`java.net.Socket`和`java.net.ServerSocket`类进行客户端和服务端的通信。 #### 三、远程文件对接技术要点 1. **客户端与服务端设计**: - 客户端负责发起连接请求,发送文件或...

Global site tag (gtag.js) - Google Analytics