導航:首頁 > 編程語言 > socket數組java

socket數組java

發布時間:2023-10-27 22:45:52

java中的socket通信,怎麼發送一個byte[]數組

socket發送的是流,所以必須將byte[]轉換成流的形式,之後才可以發送的。創建socket後可以通過下面的方法實現發送:
PrintWriter pw = null;
pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter( socket.getOutputStream()))); //創建一個輸入流,之後這個流的指向是socket
pw.write(request.toString()); //寫入要輸入的Byte[],轉換為字元串,之後進行傳送
pw.close();//傳送完畢,關閉流

㈡ 關羽java的socket傳輸字元串數組問題

給你一段代碼,不知道能不能解決你的問題
可以直接傳字元串,也可以將字元串數組封裝對象進行傳輸。
服務端代碼:
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(9091);
Socket s = ss.accept();
System.out.println("new connection");
ObjectInputStream oi = new ObjectInputStream(s.getInputStream());
String [] arr = (String[]) oi.readObject();
System.out.println(arr[0] + arr[1]);
}
}
客戶端代碼:
import java.io.ObjectOutputStream;
import java.net.Socket;

public class Mysocket {
public static void main(String[] args) throws Exception {
Socket s = new Socket("localhost",9091);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(new String[]{"123","232"});
out.flush();
out.close();
}
}

㈢ 請教大家JAVA——socket接收的數據(byte[])的處理

接收方法的問題

如果你發送一個長度11的字元串 而用一個長度為8的數組接收
第一次read沒問題 但第二次read時因為只接受了3個字元 而數組長度卻是8.結果就是除了前3個字元外剩下全部都是0 就出現了你的問題。

byte[] b = {0x11,0x22,0x33, 0x00, 0x00, 0x00, 0x00...}; -->length = 1024 後面都是0x00
就是因為隱唯態只接受了前3個字元 後邊數組實例的時候本身就是0
解決方法也比較容易
read(byte[] b)方法提供了一個返回的整數灶源用來山肢表示接受了多少個字元。
只要每次read時判斷下看看返回的數值和數組長度大小。如果接收小於數組長度在處理處理數據時把多餘的數據去掉。

閱讀全文

與socket數組java相關的資料

熱點內容
在雲伺服器上安裝軟體 瀏覽:270
什麼app可以免費聽周董的歌 瀏覽:364
netmvcpdf 瀏覽:209
arp伺服器回送的是什麼地址 瀏覽:103
生物學pdf百度雲 瀏覽:963
markdown源碼包怎麼下載 瀏覽:598
餐飲app開發公司哪個好 瀏覽:637
解壓盒子2無廣告 瀏覽:623
華為鴻蒙系統怎麼放大單個文件夾 瀏覽:587
phpwin864 瀏覽:913
boll優化源碼公式 瀏覽:905
連接伺服器埠號是如何確定的 瀏覽:14
gsm源碼 瀏覽:475
單片機點陣滾動 瀏覽:407
加密資產平台 瀏覽:721
二級建築師pdf教材 瀏覽:324
單片機i和e系列 瀏覽:320
peb是什麼伺服器 瀏覽:389
天正建造散水命令 瀏覽:220
程序員的單親媽媽 瀏覽:616