[英]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.