Java:利用TCP与Thread类,创建简版聊天室

Java:利用TCP,创建简版聊天室

一、服务端

如果通信不成功请检查8900端口是否被占用,占用请修改其它端口。如果想和其它计算机通信请修改Socket server = new Socket("127.0.0.1", 8900);中的ip地址,"127.0.0.1"为当前主机地址。

public static void main(String[] args) {
     
		Thread t = new Thread(() -> {
     
			try {
     
				System.out.println("服务器正在运行");
				// 创建服务器端口
				ServerSocket server = new ServerSocket(8900);
				// 监听客户端
				Socket client = server.accept();
				// 从客户端获取输入、输出流
				DataInputStream in = new DataInputStream(client.getInputStream());
				DataOutputStream ou = new DataOutputStream(client.getOutputStream());
				// 创建键盘获取字符缓冲流
				BufferedReader keyint = new BufferedReader(new InputStreamReader(System.in));
				// 循环输出与接收
				while (true) {
     
					// 从客户端接收数据并打印
					String inStr = in.readUTF();
					System.out.println("从客户端接收到:" + inStr);
					// 发送键盘输入的字符到客户端,如果输入bye则停止循环
					String ouStr = keyint.readLine();
					if ("bye".equals(ouStr)) {
     
						break;
					}
                    //写出并刷新管道
					ou.writeUTF(ouStr);
					ou.flush();
				}
			} catch (IOException e) {
     
			}
			System.out.println("服务器停止。。。");
		});
		t.start();
	}

二、客户端

public static void main(String[] args) {
     
		Thread t = new Thread(() -> {
     
			try {
     
				System.out.println("客户端正在运行");
				// 连接服务器端口
				Socket server = new Socket("127.0.0.1", 8900);
				// 从服务器获取输入、输出流
				DataInputStream in = new DataInputStream(server.getInputStream());
				DataOutputStream ou = new DataOutputStream(server.getOutputStream());
				// 创建键盘获取字符缓冲流
				BufferedReader keyint = new BufferedReader(new InputStreamReader(System.in));
				// 循环输出与接收
				while (true) {
     
					// 发送键盘输入的字符到服务端,如果输入bye则停止循环
					String ouStr = keyint.readLine();
					if ("bye".equals(ouStr)) {
     
						break;
					}
                    //写出并刷新管道
					ou.writeUTF(ouStr);
					ou.flush();
					// 从服务端接收数据并打印
					String inStr = in.readUTF();
					System.out.println("服务端接收到:" + inStr);
				}
			} catch (IOException e) {
     
				// TODO Auto-generated catch block
				System.out.println("连接到服务器停止");
			}
			System.out.println("客户端停止。。。");
		});
		t.start();
	}

你可能感兴趣的:(JAVA知识散集,socket,java)