2010-11-02 128 views
2

我想要一個android應用程序發送tcp數據到我的網絡上的服務器。服務器是用C#編寫的。無法通過TCP從java套接字發送數據到.net tcp服務器

當我使用下面的代碼來傳輸數據時,服務器只接收一系列的\ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0。

有誰知道爲什麼?

Socket socket = new Socket(host, port); 
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); 
pw.print("test"); 
socket.close(); 
+1

一個想法是檢查發送的內容是否與服務器期望的內容匹配。 – fhj 2010-11-02 05:47:09

回答

2

我不確定這是否與此有關,但您可能想嘗試手動刷新PrintWriter。您確實將true傳遞給其構造函數以請求自動清理,但我相信只有在您打印出一個換行符時纔會發生這種情況,而換行符不適用於您的示例代碼。

+0

關閉前不應該關閉「flush」? – st0le 2010-11-02 05:50:57

+0

是的,但那隻會刷新套接字的緩衝區。 'PrintWriter'類維護自己的緩衝區,必須在套接字關閉之前刷新緩衝區以確保所有數據正確傳遞。 – bcat 2010-11-02 05:53:42

0

你可能想嘗試println(「測試」)。在java中你需要刷新行,這可能是你的問題的原因。

1

關閉PrintWriter,而不是套接字。

相關問題