zoukankan      html  css  js  c++  java
  • 网络编程-TCP连接-length

    在使用readLine方式时,常常会遇到因为没有结束标记,而导致阻塞现象。

    如果不想使用结束标记,这里可以使用一个固定长度的byte[],来获取流。

    server

    package com.net.tcp.length;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class MyServerL {
    
        public static void main(String[] args) {
            
                ServerSocket ss;
                try {
                    ss = new ServerSocket(30000);
                    Socket s= ss.accept();
                    byte[] rin = new byte[8];
                    s.getInputStream().read(rin);
                    System.out.println(new String(rin,0,8));
                
                    
                    PrintStream ps = new PrintStream(s.getOutputStream());
                    ps.println("收到消息aa");
                    ps.flush();
                    ps.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                    }                
    
    }

    Client

    package com.net.tcp.length;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    import java.net.InetSocketAddress;
    import java.net.Socket;
    
    public class MyClientL {
    
        public static void main(String[] args) {
            Socket s = new Socket();
            try {
                s.connect(new InetSocketAddress("127.0.0.1", 30000), 10000);
                PrintStream ps = new PrintStream(s.getOutputStream());
                ps.println("发送消息aa");
                ps.flush();
                
                byte[] rin = new byte[8];
                s.getInputStream().read(rin);
                System.out.println(new String(rin,0,8));
                
                ps.close();
                s.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }
  • 相关阅读:
    table的好处
    python使用split分隔字符串之后打印出来是乱码的问题
    关于python项目使用tornado框架时,加载不上静态资源(css/js)并报编码错误的问题
    马的遍历
    数据结构学习资料
    操作系统学习资料
    珠心算测验 C / C++
    拼数 C/C++
    神奇的幻方
    工艺品制作(多维数组应用)
  • 原文地址:https://www.cnblogs.com/moonpool/p/5518866.html
Copyright © 2011-2022 走看看