问啥我的不会打印信息

来源:3-3 编程实现基于 TCP 的 Socke t通信之客户端

染红_街道

2016-07-09 18:47

//1、创建一个服务器,绑定一个指定的端口
            ServerSocket serverSocket = new ServerSocket(5555);
            //2、调用ServerSocket的accept方法,等待客户端连接
            System.out.println("**********等待连接*********");
            Socket socket = serverSocket.accept();
            //3、获取输入流,读取客户端信息
            InputStream is = socket.getInputStream();
            BufferedReader isr = new BufferedReader(
                    new InputStreamReader(is));
            String str;
            while ((str = isr.readLine()) != null) {
                System.out.println("客户端:" + str);
            }
            socket.shutdownInput();//关闭输入流
            
            //4、关闭资源
            isr.close();
            is.close();
            socket.close();
            System.out.println("连接关闭!");
            
            
     //1、建立客户端Socket对象
            Socket socket = new Socket("localhost", 5555);
            //2、获取输入流,向服务器请求登录
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.write("Gust:admin;Password:123");
            socket.shutdownOutput();
            
            //3、关闭相关资源
            pw.flush();
            pw.close();
            os.close();
            System.out.println("连接关闭!");

server端

*********等待连接*********
连接关闭!


client端

连接关闭!

写回答 关注

1回答

  • 略坑
    2016-07-10 09:40:51
    已采纳

    while 循环里面加上一行str=isr.readLine();

    染红_街道

    其实是刷新缓冲区应该放在socket.shutdownOutput();之前的

    2016-07-11 08:35:29

    共 2 条回复 >

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

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

125013 学习 · 590 问题

查看课程

相似问题