【问题标题】:Sending and receiving byte[] using socket使用套接字发送和接收字节[]
【发布时间】:2018-04-03 15:19:07
【问题描述】:

我的代码中有Socket socket=new Socket(ipAddress, port);。我需要通过该套接字发送byte[] 并接收byte[]。怎么做,使用什么包装器(我总是发送byte[] 并接收byte[])?

【问题讨论】:

标签: java


【解决方案1】:

看看Reading from and Writing to a Socket上的教程。

要将字节数组写入套接字,您可以:

byte[] message = ...;
Socket socket=new Socket(ipAddress, port);
OutputStream socketOutputStream = socket.getOutputStream();
socketOutputStream.write(message);

同样,要阅读,您可以使用socket.getInputStream。

【讨论】:

    【解决方案2】:

    您不需要包装器。只需在套接字对象上调用getInputStream() 和getOutputStream()。返回的对象有read(byte[]) 和write(byte[]) 方法。请注意考虑read(byte[]) 的返回值(它返回实际读取的字节数)。

    【讨论】:

      【解决方案3】:

      在服务器端,创建一个新的ServerSocket 并在套接字对象上调用accept() 以接受传入连接。 (您可能希望在新线程中处理新连接的会话,以避免阻塞主线程。)

      在客户端,创建一个新的Socket 并使用服务器的地址和端口调用connect() 以启动连接。

      【讨论】:

        【解决方案4】:

        使用这个

        public static byte[] sendandrecive(byte[] message)
        {
            byte[] real = null;
        
            try
            {
                Socket s=new Socket("192.9.200.4",2775);
                DataInputStream dis=new DataInputStream(s.getInputStream());  
                DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
        
                dout.write(message, 0, message.length);
                dout.flush();  
        
                //dout.close();  
        
                byte[] data = new byte[1000];
                int count = dis.read(data);
                real =new byte[count+1];
                for(int i=1;i<=count;i++)
                real[i]=data[i];
        
                s.close();
                System.out.println("ok");
        
                }
        
            catch(Exception e)
            {
                System.out.println(e);
            }
            return real;  
        }
        

        【讨论】:

        • 您好,一些解释会显着提高您的回答质量
        猜你喜欢
        • 2011-07-11
        • 2010-11-13
        • 2012-05-27
        • 1970-01-01
        • 2013-11-13
        • 1970-01-01
        • 2010-11-14
        • 2016-02-21
        • 2013-04-01
        相关资源
        最近更新 更多