zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    学习flying logic
    7-47 两数之和 (30 分)
    7-44 jmu-python-区间数之和 (10 分)
    7-45 jmu-python-涨工资 (10 分)
    7-42 jmu-python-找字符 (15 分)
    7-43 jmu-python-字符串异常处理 (20 分)
    7-40 jmu-python-统计成绩 (15 分)
    7-41 jmu-python-最佳身高 (10 分)
    7-35 jmu-python-求三角形面积及周长 (10 分)
    7-36 jmu-python-统计字符个数 (10 分)
  • 原文地址:https://www.cnblogs.com/Tommy-Yu/p/5342213.html
Copyright © 2011-2022 走看看