摘要:C# 與 Java 做 Socket 溝通之注意事項
最近的Case 要跟Java Server 做資料交換。從Server傳訊息給Client 是沒什麼問題,但是Client 傳資料給Server卻遲遲卡在Server讀取串流。
while (true) {
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
String line = in.readLine();←卡在這
out.println("you input is :" + line);
System.out.println("server:"+line);
out.close();
in.close();
socket.close();
ss.close();
}
後來找了一下資料才發現,C#要傳給Java時字串最後要加上\n 一個換行符號,Java才會認定完成讀取
byte[] databytes = this.Encoding.GetBytes(data+"\n");
client.BeginSend(databytes, 0, databytes.Length, 0, new AsyncCallback(SendHandler), client);
真的是不經一事不長一智