繁体   English   中英

使用套接字发送和接收byte []

[英]Sending and receiving byte[] using socket

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

看一下阅读和写入套接字的教程。

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

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

同样,要阅读,您将使用socket.getInputStream

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

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

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

用这个

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;  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM