您的位置:首页 > 理论基础 > 计算机网络

java网络编程,通过TCP,Socket实现多对一的局域网聊天室

2012-12-14 23:23 691 查看
java网络编程,通过TCP,Socket实现多对一的局域网聊天室

可以实现多个客户端连接服务器,服务器接收到信息就会把信息广播到所有的客户端

View Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class ClientThread extends Thread {
ClientUI ui;
Socket client;
BufferedReader reader;
PrintWriter writer;

public ClientThread(ClientUI ui) {
this.ui = ui;
try {
client = new Socket("127.0.0.1", 1228);//这里设置连接服务器端的IP的端口
println("连接服务器成功:端口1228");
reader = new BufferedReader(new InputStreamReader(
client.getInputStream()));
writer = new PrintWriter(client.getOutputStream(), true);
// 如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区
} catch (IOException e) {
println("连接服务器失败:端口1228");
println(e.toString());
e.printStackTrace();
}
this.start();
}

public void run() {
String msg = "";
while (true) {
try {
msg = reader.readLine();
} catch (IOException e) {
println("服务器断开连接");

break;
}
if (msg != null && msg.trim() != "") {
println(">>" + msg);
}
}
}

public void sendMsg(String msg) {
try {
writer.println(msg);
} catch (Exception e) {
println(e.toString());
}
}

public void println(String s) {
if (s != null) {
this.ui.taShow.setText(this.ui.taShow.getText() + s + "\n");
System.out.println(s + "\n");
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: