Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#TCP套接字,在;“相同”;时间(.NET CF),如何计算?_C#_Sockets_Compact Framework - Fatal编程技术网

C#TCP套接字,在;“相同”;时间(.NET CF),如何计算?

C#TCP套接字,在;“相同”;时间(.NET CF),如何计算?,c#,sockets,compact-framework,C#,Sockets,Compact Framework,当在套接字级别上使用异步方法时,从相关联的网络流发送和接收数据,或者在套接字上“直接”发送和接收数据,应该不会有问题。但是,你可能已经知道,有 这个问题在Windows Mobile平台和Compact框架上尤为突出 我使用异步方法BeginReceive和回调函数,该函数对从异步接收的数据(EndReceive)执行挂起的异步读取。结果 因为我需要不断地从套接字接收数据,所以有一个循环等待数据。 当我想发送数据时,问题就开始了。为此,在通过套接字发送一些数据之前,我将使用EndReceive“

当在套接字级别上使用异步方法时,从相关联的网络流发送和接收数据,或者在套接字上“直接”发送和接收数据,应该不会有问题。但是,你可能已经知道,有

这个问题在Windows Mobile平台和Compact框架上尤为突出

我使用异步方法BeginReceive和回调函数,该函数对从异步接收的数据(EndReceive)执行挂起的异步读取。结果

因为我需要不断地从套接字接收数据,所以有一个循环等待数据。 当我想发送数据时,问题就开始了。为此,在通过套接字发送一些数据之前,我将使用EndReceive“强制”结束异步读取。有一个很大的延迟(有时你不能等待这个超时)。超时时间太长,我需要立即发送数据。怎么用?我不想关闭插座并重新连接

我使用同步方法Send发送数据(尽管结果与async.methods BeginSend/EndSend相同)。发送完成后,我再次开始接收数据

我所知道的资源:

  • -关于超时的评论
  • -简单客户端/服务器解决方案,使用异步方法接收数据,使用同步方法发送数据
注意:我试图在不结束异步接收的情况下发送数据,但随后收到SocketException:当前正在执行阻塞操作(错误代码:10036)


提前谢谢!我希望我不是唯一一个遇到“一个小问题”的人……)

您是否考虑过使用Poll(或选择多个套接字)静态方法而不是BeginReceive来检查是否有数据可读取?在我看来,这给您带来了麻烦。

是的,的确,使用轮询方法,我可以始终通过套接字进行读写,而不会出现阻塞、错误、异常(到目前为止)等情况。非常感谢您!我花了两天时间寻找这个答案引用:@Beaver您能解释一下您在代码中使用poll的位置吗?(或者你建议将代码放在Yakeen)在使用异步套接字时?