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

本文档介绍了如何使用Java的TCP协议创建一个简单的聊天室。服务端需要注意8900端口的占用情况,客户端则涉及与服务器的连接配置。
摘要由CSDN通过智能技术生成

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();
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值