java 网络编程-TCP-多人群聊(自问自答)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 网络编程-TCP-多人群聊(自问自答)相关的知识,希望对你有一定的参考价值。
在线聊天室服务器:
public class Chat
public static void main(String[]args) throws IOException
System.out.println("服务器启动中...");
//创建服务器
ServerSocket server=new ServerSocket(9999);
//阻塞式等待连接,当客户端Socket创建好以后才开启
while(true)
Socket client=server.accept();
System.out.println("一个客户端建立了连接");
new Thread(()->
DataInputStream dis = null;
DataOutputStream dos = null;
try
dis = new DataInputStream(client.getInputStream());
dos = new DataOutputStream(client.getOutputStream());
catch (IOException e1)
e1.printStackTrace();
boolean flag=true;
while(flag)
String msg = null;
try
msg = dis.readUTF();
dos.writeUTF(msg);
dos.flush();
catch (IOException e)
//当断掉客户端连接时,不用循环再读取数据
flag=false;
//返回消息
try
if(null!=dos)
dos.close();
catch (IOException e)
e.printStackTrace();
try
if(null!=dis)
dis.close();
catch (IOException e)
e.printStackTrace();
try
if(null!=client)
client.close();
catch (IOException e)
e.printStackTrace();
).start();
客户端:
public class Client
public static void main(String[]args) throws UnknownHostException, IOException
System.out.println("客户端启动中...");
Socket client=new Socket("localhost",9999);
//客户端发送消息
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
DataOutputStream dos=new DataOutputStream(client.getOutputStream());
DataInputStream dis =new DataInputStream(client.getInputStream());
boolean flag=true;
while(flag)
System.out.println("请输入消息");
String msg=br.readLine();
dos.writeUTF(msg);
dos.flush();
//获取消息
msg=dis.readUTF();
System.out.println(msg);
dos.close();
dis.close();
client.close();
以上是关于java 网络编程-TCP-多人群聊(自问自答)的主要内容,如果未能解决你的问题,请参考以下文章