• Socket通讯的readline


    这里记录一下在写一个普通的SocketServer中遇到问题,就是当readLine的时候,迟迟获取不到由客户端发来的请求,in.readLine,一直堵塞,原因是因为客户端发信息的时候,只发里内容,而缺少了换行符 write.write("hello ");

    这里是客户端

    public class ClientMain {
        public static void main(String[] args) {
            try {
                Socket socket = new Socket("localhost", 9898);
                BufferedWriter write=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                while(true) {
                    
                    write.write("hello
    ");
                    write.flush();
                    Thread.sleep(10000);
                }
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    }

     

    这是服务端

    public class SocketServerMain {
    
        public static void main(String[] args) {
            ServerSocket ss = null;
            try {
    
                ss = new ServerSocket(9898);
                System.out.println("打开9898端口,正等待链接...");
                Socket socket = ss.accept();
                System.out.println("链接成功");
                boolean close = false;
                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                while (!close) {
                    System.out.println("等待接受信息...");
                    String fromClient = in.readLine();
                    System.out.println("Client say : " + fromClient);
                }
    
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                if (ss != null) {
                    try {
                        ss.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
    
            }
    
        }
    }
  • 相关阅读:
    Java运算符
    Java数据类型,常量与变量
    内存
    cmd编码
    DELL G7重置电脑操作步骤
    关于es6中...运算符的总结
    js数组与字符串相互转换
    JS中的continue,break,return的区别
    git提交步骤
    数据修改后点击确定没有保存 还是原来的数据
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/10424862.html
Copyright © 2020-2023  润新知