服务端与客服端之间用线程怎样相互通讯

来源:3-5 使用多线程实现多客户端的通信

qq_十指紧扣_0

2015-06-18 10:22

怎样使客户端能向服务端不停的发送一条又一条的信息呢,做一个线程,然后用一个循环

  while(true){

      PrintWriter pw =new PrintWriter(os);//将输出流装为打印

if(clienting!=null) {       

pw.write(clienting);

           pw.flush(); }

       //pw.close();

}

可是这样的话,必须要在pw.flush在后面加pw.close();可是这样的话只能服务端只接受一条信息,为什么呢?

或者老师有什么好的方法吗


写回答 关注

1回答

  • CodeBall
    2015-12-17 20:54:07

    服务器端:

    while(true){
    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
    String mess = br.readLine();
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    
    String str = "服务器接收到的信息为:>>"+mess+"\n";
    bw.write(str);
    bw.flush();
    }

    客户端:

    Scanner scanner = new Scanner(System.in);
    	while(true){
    		System.out.println("请输入发送消息内容:");
    		bw.write(scanner.nextLine()+"\n");
    		bw.newLine();
    		bw.flush();
    		BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
    		//读取服务器返回的消息数据
    		System.out.println(s.getInetAddress().getLocalHost()+":"+s.getPort()+">>"+br.readLine());
    			}


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

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

125006 学习 · 596 问题

查看课程

相似问题