weixin_44716002 2019-11-18 17:22 采纳率: 0%
浏览 1641

socket客户端如何主动断开与服务器的连接

这里是客户端
new Thread(new Runnable() {
@Override
public void run() {
try {
final Socket socket=new Socket("192.168.43.39",8080);
OutputStream out=socket.getOutputStream();
PrintWriter pw=new PrintWriter(out);
pw.write("123");
pw.flush();
socket.shutdownOutput();
socket.setSoTimeout(5000);
InputStream inputStream=socket.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
String client=null;
while ((client=bufferedReader.readLine())!=null){
System.out.print("这里是客户端。服务器说:"+client);
textView.setText("这里是客户端,"+client);
}
//关闭相关资源
inputStream.close();
bufferedReader.close();
pw.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();

这是服务器端
     try {
            ServerSocket serverSocket=new ServerSocket(8080);
            System.out.print("服务器已启动,正在等待客户端连接...\n");
            //记录客户端的数量
            int count=0;
            //循环监听等待客户端的连接
            while (true){
                //调用accept()方法监听,等待客户端的连接
                socket= serverSocket.accept();
                System.out.print("服务器已连接客户端!\n");
                //创建一个新的线程
                ServerThread serverThread=new ServerThread(socket);
                //开启线程
                serverThread.start();
                count++;
                System.out.print("当前客户端的数量为:"+count+"\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-11-18 18:18
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题