每次都必须调用`.BeginAccept`来接收更多数据吗?或仅用于新客户进行连接

时间:2019-06-03 13:09:02

标签: .net sockets tcp serversocket asyncsocket

我正在学习一些使用.net套接字类的异步套接字编程。

  1. 因此,最初,我使用* installing *source* package 'MYPACKAGE' ... ** using staged installation ** libs sh: line 6: C:/Rtools/mingw_32/bin/nm: No such file or directory C:/Rtools/mingw_32/bin/g++ -shared -s -static-libgcc -o MYPACKAGE.dll tmp.def [...] -LC:/PROGRA~1/R/R-36~1.0/bin/x64 -lR sh: line 8: C:/Rtools/mingw_32/bin/g++: No such file or directory no DLL was created ERROR: compilation failed for package 'MYPACKAGE' 启动服务器套接字。
  2. 然后我通过异步回调调用.listen(),该回调在客户端连接时运行。检查。
  3. 获得新的客户端连接后,我的回调将运行,将连接传递给新的套接字对象,然后开始使用带有.beginAccept()的回调来接收数据。

让我们现在已经完成了从该客户端接收数据的工作,但是我想保持连接状态,以获取该客户端可能发送的任何将来的数据。

我的客户和现在为这个新客户创建的“套接字”可以继续通话,而无需我再次致电.BeginReceive吗?

我知道我必须致电.BeginAccept来接收任何新的客户端,但是我的初始客户端及其服务器套接字可以继续来回聊天,还是我的客户端必须“重新连接”到服务器再次通过.BeginAccept调用来实现每次向服务器发送数据的往返行程?

我希望我的问题有意义,我对这个问题有点困惑;-)

谢谢

0 个答案:

没有答案