C#TCP套接字,在;“相同”;时间(.NET CF),如何计算?
当在套接字级别上使用异步方法时,从相关联的网络流发送和接收数据,或者在套接字上“直接”发送和接收数据,应该不会有问题。但是,你可能已经知道,有 这个问题在Windows Mobile平台和Compact框架上尤为突出 我使用异步方法BeginReceive和回调函数,该函数对从异步接收的数据(EndReceive)执行挂起的异步读取。结果 因为我需要不断地从套接字接收数据,所以有一个循环等待数据。 当我想发送数据时,问题就开始了。为此,在通过套接字发送一些数据之前,我将使用EndReceive“强制”结束异步读取。有一个很大的延迟(有时你不能等待这个超时)。超时时间太长,我需要立即发送数据。怎么用?我不想关闭插座并重新连接 我使用同步方法Send发送数据(尽管结果与async.methods BeginSend/EndSend相同)。发送完成后,我再次开始接收数据 我所知道的资源:C#TCP套接字,在;“相同”;时间(.NET CF),如何计算?,c#,sockets,compact-framework,C#,Sockets,Compact Framework,当在套接字级别上使用异步方法时,从相关联的网络流发送和接收数据,或者在套接字上“直接”发送和接收数据,应该不会有问题。但是,你可能已经知道,有 这个问题在Windows Mobile平台和Compact框架上尤为突出 我使用异步方法BeginReceive和回调函数,该函数对从异步接收的数据(EndReceive)执行挂起的异步读取。结果 因为我需要不断地从套接字接收数据,所以有一个循环等待数据。 当我想发送数据时,问题就开始了。为此,在通过套接字发送一些数据之前,我将使用EndReceive“
- -关于超时的评论
- -简单客户端/服务器解决方案,使用异步方法接收数据,使用同步方法发送数据
提前谢谢!我希望我不是唯一一个遇到“一个小问题”的人……) 您是否考虑过使用Poll(或选择多个套接字)静态方法而不是BeginReceive来检查是否有数据可读取?在我看来,这给您带来了麻烦。是的,的确,使用轮询方法,我可以始终通过套接字进行读写,而不会出现阻塞、错误、异常(到目前为止)等情况。非常感谢您!我花了两天时间寻找这个答案引用:@Beaver您能解释一下您在代码中使用poll的位置吗?(或者你建议将代码放在Yakeen)在使用异步套接字时?