我真的想送過來TCP一些簡單的數據在我的java程序:Java的TCP簡單的通信提供了意想不到的效果
String data = "70798090999a9b9c9d9e9fa0a1a2";
ServerSocket srvr = new ServerSocket(1234);
Socket skt = srvr.accept();
OutputStream out = skt.getOutputStream();
out.write(hexStringToByteArray(data));
out.close();
skt.close();
srvr.close();
隨着功能:
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len/2];
for (int i = 0; i < len; i += 2) {
data[i/2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}
和接收的數據爲:
Socket skt = new Socket("localhost", 1234);
BufferedReader in = new BufferedReader(new
InputStreamReader(skt.getInputStream()));
while (!in.ready()) {}
while (in.ready()) {
System.out.println(in.read()); // Read one line and output it
}
但不是接收一個正常增加自己的數字列表,我得到了一些增加並隨意減少:
121
196
234
244
246
245
250
249
251
252
8224
176
162
我在哪裏做錯了什麼?
你有沒有試過將它讀入一個字節[]? Becaus 8224顯然不適合一個字節 – Sibbo