• java socket client


    用tornado做了个socket server。无奈联调的人员对接不上。

    于是撸出了以下demo

    import java.io.*;
    import java.net.*;
    
    public class SocketTest{
        SocketTest(){}
        void test()
        {
            try{
                Socket requestSocket = new Socket("xxx.xxx.xxx.xxx", 60006);
                OutputStream out = requestSocket.getOutputStream();
                InputStream in = requestSocket.getInputStream();
    
                byte[] bb = new byte[16] ;
                for(int i =0;i<13;i++)
                {
                    bb[i+3]=(byte)((int)'a'+i);
                }
                bb[0]=(byte)0x00;
                bb[1]=(byte)0x0e;
                bb[2]=(byte)0xaa;
                bb[15]=(byte)0xfe;
                System.out.println("client>"+new String(bb));
                
                out.write(bb);
                out.flush();
    
                byte[] buffer = new byte[1024];
                in.read(buffer);
                String responseStr = new String(buffer);
                System.out.println("server>"+responseStr);
    
                out.close();
                in.close();
    
                requestSocket.close();
            }
            catch(IOException ioException){
                ioException.printStackTrace();
            }
            // catch(ClassNotFoundException classNot){
            //     System.err.println("data received in unknown format");
            // }
    
        }
    
        public static void main(String args[])
        {
            SocketTest client = new SocketTest();
            client.test();
        }
    }
    

    既要:

    1. linux 下编译执行的细节:

        javac SocketTest.java

        java SocketTest  (不要 java SocketTest.class, 不然一大堆误导加麻烦)

    2. 字节操作,在java里面用byte数组,不要担心(128~255)溢出。直接赋值即可。

      byte b = (byte)254;

    3. 从socket得到原始的输入输出流,不要再用其他包裹,否则会出现诡异的事情。

      OutputStream out = requestSocket.getOutputStream();

      InputStream in = requestSocket.getInputStream();

  • 相关阅读:
    【洛谷P3628】特别行动队
    【洛谷P3233】世界树
    【BZOJ1597】土地购买
    【洛谷P4068】数字配对
    【洛谷P3899】谈笑风生
    【BZOJ2726】任务安排
    【洛谷P6186】[NOI Online 提高组] 冒泡排序
    【洛谷P3369】【模板】普通平衡树
    【UOJ#8】Quine
    标准 插入flash
  • 原文地址:https://www.cnblogs.com/Tommy-Yu/p/5342213.html
Copyright © 2020-2023  润新知