如何确保Socket发送的数据

本文关键字:数据 Socket 何确保 确保 | 更新日期: 2023-09-27 17:58:29

在基于Windows CE 5.0的POS设备上的.NET CF中,如果没有可用的连接(GPRS/WiFi),当我尝试连接我的套接字对象时,我不会得到任何异常,即使在它之后,当我试图通过socket.SentTo()方法将字节发送到某个地方时,我也不会得到任何例外!甚至返回的指示发送的总字节大小的值也是正确的!怎么了?如何确保手术的健康?我的代码片段:

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);

如何确保Socket发送的数据

少数建议:

  • 检查连接的Connected属性

  • 我知道SendTo更适合无连接协议,Send()更适合TCP等面向连接的协议。

  • 如果没有要发送的数据,Send()(我预计SendTo())可能没有效果。你检查过有数据吗?