如何Socket实现多个客户端相互通信(图文无关)

来源:-

风连翠木

2016-06-06 07:48

public class ServerThread extends Thread {

// 和本线程相关的Socket

Socket socket = null;


public ServerThread(Socket socket) {

this.socket = socket;

}

//线程执行的操作,响应客户端的请求

public void run(){

InputStream is=null;

InputStreamReader isr=null;

BufferedReader br=null;

OutputStream os=null;

PrintWriter pw=null;

try {

//获取输入流,并读取客户端信息

is = socket.getInputStream();

isr = new InputStreamReader(is);

br = new BufferedReader(isr);

String info=null;

while((info=br.readLine())!=null){//循环读取客户端的信息

System.out.println("我是服务器,客户端说:"+info);

}

socket.shutdownInput();//关闭输入流

//获取输出流,响应客户端的请求

os = socket.getOutputStream();

pw = new PrintWriter(os);

pw.write("欢迎您!");

pw.flush();//调用flush()方法将缓冲输出

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

//关闭资源

try {

if(pw!=null)

pw.close();

if(os!=null)

os.close();

if(br!=null)

br.close();

if(isr!=null)

isr.close();

if(is!=null)

is.close();

if(socket!=null)

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}


写回答 关注

1回答

  • SoyaDokio
    2016-07-02 14:20:12

    所谓的多客户端相互通信,其实就是服务端在中间负责转发多个客户端的消息而已。

Java Socket应用---通信是这样练成的

分享的是 Java 中的网络编程,使用Socket实现网络聊天通信

125013 学习 · 590 问题

查看课程

相似问题