如何确保Socket发送数据?

时间:2011-06-07 11:57:23

标签: c# .net compact-framework windows-ce

在基于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);

1 个答案:

答案 0 :(得分:1)

很少有建议:

  • 检查连接的Connected属性

  • 我理解SendTo更适合无连接协议,Send()更适合面向连接的协议,如TCP。

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