一个 HelloWord 级别的 Java Socket 通信的例子。通讯过程:
先启动 Server 端,进入一个死循环以便一直监听某端口是否有连接请求。然后运行 Client端,客户端发出连接请求,服务端监听到这次请求后向客户端发回接受消息,连接建立,启动一个线程去处理这次请求,然后继续死循环监听其他请求。客户端输入字符串后按回车键,向服务器发送数据。服务器读取数据后回复客户端数据。这次请求处理完毕,启动的线程消亡。如果客户端接收到"OK"之外的返回数据,会再次发送连接请求并发送数据,服务器会为这次连接再次启动一个线程来进行响应。。。直到当客户端接收到的返回数据为"OK" 时,客户端退出。
服务端源代码:
package com.defonds.socket.begin;
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 Server {
publicstatic final int PORT =12345;//监听的端口号
publicstatic void main(String[] args){
System.out.println("服务器启动...\n");
Server server = newServer();
server.init();
}
public voidinit(){
try {
ServerSocket serverSocket = newServerSocket(PORT);
while (true){
// 一旦有堵塞,则表示服务器与客户端获得了连接
Socket client =serverSocket.accept();
//处理这次连接
newHandlerThread(client);
}
} catch (Exception e){
System.out.println("服务器异常: " +e.getMessage());
}
}
privateclass HandlerThread implements Runnable{