簡體   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