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();
            }
    
        }
    
    }
  • 相关阅读:
    开心网注册详解和邀请码发放
    3COM 905TX 配置
    SQL使用
    JDBC的使用
    kiko日记几个月以来工作总结2010 1124
    talk about the history of JAZZ
    这几个月的工作任务
    工作间期的不足
    转: mac使用nvm管理多个版本node
    负载均衡与ssl证书
  • 原文地址:https://www.cnblogs.com/moonpool/p/5518866.html
Copyright © 2011-2022 走看看