C#使用Socket 溝通之注意事項

  • 4315
  • 0
  • C#
  • 2013-02-23

摘要: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);

真的是不經一事不長一智