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

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 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题