C# 如何确保套接字发送数据的安全性?

C# 如何确保套接字发送数据的安全性?,c#,.net,compact-framework,windows-ce,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

在基于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);
几点建议:

  • 检查连接的属性

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

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


我不记得为什么我从Send()切换到SendTo(),但是我的设备使用GPRS连接,所以是UDP还是TCP?我的套接字初始化代码应该是什么?顺便说一下,我发送的数据是正确的。