我是通過套接字發送數據的新手,但我想明白如何做到這一點。 我的問題是,我只能發送和接收字節,有沒有一種方法可以發送和接收字符串而不是字節?或者它總是字節?java套接字發送字符串,而不是字節
我爲我的插座是如何工作的理解不好對不起,但我想(;!提前
感謝
我是通過套接字發送數據的新手,但我想明白如何做到這一點。 我的問題是,我只能發送和接收字節,有沒有一種方法可以發送和接收字符串而不是字節?或者它總是字節?java套接字發送字符串,而不是字節
我爲我的插座是如何工作的理解不好對不起,但我想(;!提前
感謝
您可以使用DataStreams和writeUTF。另一方面,你可以用readUTF讀取字符串。
yourSocket = new Socket("yoursocket.ip", port);
os = new DataOutputStream(yourSocket.getOutputStream());
os.writeUTF("your string");
在另一邊,你可以讀取它與
is = new DataInputStream(yourSocket.getInputStream());
String yourString = is.readUTF();
要通過套接字發送數據時,它必須是一個byte[]
使用<string>.getBytes()
方法,您可以檢索字符串的字節表示形式,然後可以通過套接字發送結果字節數組。在接收端使用String構造函數String(<byte array>)
可以重新創建字符串。方法允許你傳遞一個字符格式作爲第二個參數(有一個看看JavaDoc)。我建議這樣做,以確保即使在兩個不同的平臺上,您也能收到相同的數據。
以同樣的方式,你已經採取了看看[這裏](http://stackoverflow.com/questions/17440795/send-a -string-byte-through-socket-in-java)問題? – QueryLars
儘管您可以將字符串轉換爲字節,反之亦然。 –