使用 Java 实现一个简单的聊天程序, 实现服务器端接收到客户端发来的消息, 使用了java.net.socket包. 通过socket 实现 client — server 之间的通讯.
socket详解
环境要求:

  1. windows启用telnet功能.
  2. Eclipse安装必要组件
    Java Client -- Server (服务器端和客户端) 通讯_java

代码如下:


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
 * @author yancykahn
 * @vision 2.0
 */
public class Server {
	private ServerSocket serverSocket;

	// 端口号为port 的构造函数
	public Server(int port) {
		try {
			serverSocket = new ServerSocket(port);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void start() {
		try {
			System.out.println("wait server connect ...");
			//让服务器进入等待状态, 阻塞.
			Socket socket = serverSocket.accept();
			System.out.println("server connected.");
			
			InputStream is = socket.getInputStream();
			OutputStream os = socket.getOutputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
			String data = br.readLine().toString();
			String name = socket.getInetAddress().getCanonicalHostName();
			while(!data.equals("exit")) {
				String temp = name + " : " + data + "\r\n";
				System.out.println(temp);
				os.write(temp.getBytes());
				os.flush();
				data = br.readLine().toString();
			}
			os.write("bye!\n".getBytes());
			os.flush();
			socket.close();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Server server = new Server(8888);
		server.start();
	}
}

效果图:

  1. telnet远程连接
    Java Client -- Server (服务器端和客户端) 通讯_socket_02
    2.连接成功
    Java Client -- Server (服务器端和客户端) 通讯_构造函数_03
    Java Client -- Server (服务器端和客户端) 通讯_构造函数_04
    3.退出
    Java Client -- Server (服务器端和客户端) 通讯_构造函数_05