如何使用C#中的套接字异步回复客户机?
我已经基本实现了(以及相应的客户端)。使用它,如果我完全按照示例进行操作,也就是说,如果对如何使用C#中的套接字异步回复客户机?,c#,serversocket,asyncsocket,C#,Serversocket,Asyncsocket,我已经基本实现了(以及相应的客户端)。使用它,如果我完全按照示例进行操作,也就是说,如果对Send()的调用在ReadCallback()方法中,我就可以响应客户机 但是,如果我尝试在此处之外发送响应,例如,在连接到消息处理例程(在不同线程中运行)的回调中,我会收到错误,表示套接字未连接。如果我尝试在服务器代码中的其他地方发送响应,比如在侦听传入连接的while(true)循环中,我会收到相同的错误 我是不是错过了一些基本的东西 编辑: 好的,我读到了,我现在认为,根据这个答案,我必须修改我链接
Send()
的调用在ReadCallback()
方法中,我就可以响应客户机
但是,如果我尝试在此处之外发送响应,例如,在连接到消息处理例程(在不同线程中运行)的回调中,我会收到错误,表示套接字未连接。如果我尝试在服务器
代码中的其他地方发送响应,比如在侦听传入连接的while(true)
循环中,我会收到相同的错误
我是不是错过了一些基本的东西
编辑:
好的,我读到了,我现在认为,根据这个答案,我必须修改我链接到的示例,以便在accept
过程返回的套接字上回复服务器。我的目标是在客户端和服务器连接后,能够在接收回调之外调用Send()
,比如从Main()
请有人建议我如何修改示例以实现我的目标?我对此感到非常困惑,如果不需要的话,我不想创建一个单独的流(根据我发布的问题,我不需要…。如果您想保持连接打开,那么需要持久化
处理程序变量,因为这是打开的套接字连接。然后,无论何时,只要您想要发送该连接,就可以检索其套接字并发送消息
另外,您显然不会对处理程序变量调用Shutdown()和Close()。在修改之前/之后发布相关的代码片段将有助于我们更好地理解。谈话很好,但通常不能准确描述代码。先生,你是一个绝对的英雄。这是我几周来做的最简单的mod。这绝对是一个“见树不见林”的案例!(仅供参考,这是我失去的坚持)。