2011-06-07 54 views
2

在基於Windows CE 5.0的POS設備上的.NET CF中,如果沒有連接(GPRS/WiFi)可用,當我嘗試連接套接字對象時,即使在嘗試連接後,我也不會收到任何異常通過Socket.SentTo()方法將字節發送到某處我也沒有收到任何異常!甚至返回的值表示總共發送的字節的大小是正確的!怎麼了?我如何確保操作的健康? 件我的代碼:如何確保Socket發送數據?

Socket m_socClient = new Socket(
    AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
IPAddress ipAdd = IPAddress.Parse("192.168.7.80"); 
IPEndPoint remoteEP = new IPEndPoint(ipAdd, 2415); 
m_socClient.Connect(remoteEP); // No exception! 

// why works? 
int iSent = m_socClient.SendTo(byData, byData.Length, 
    SocketFlags.None, remoteEP); 

回答

1

幾點建議:

  • 檢查連接

  • 我理解的SendTo是更適合於無連接協議,併發送()的Connected屬性更適合於面向連接的協議,如TCP。

  • 如果沒有要發送的數據,Send()(和我期望的SendTo())可能不起作用。你有沒有檢查有數據?

+0

我不記得爲什麼我從Send()切換到SendTo(),但是我爲我的設備使用GPRS連接,所以它是UDP或TCP?什麼應該是我的套接字初始化代碼?順便說一下,我的發送數據是正確的。 – losingsleeep 2011-06-08 08:34:07

相關問題