我基本上已经实现了this asynchronous server socket example(以及相应的客户端)。使用它,我可以回复客户端,如果我完全按照示例,即,Send()
响应的调用是ReadCallback()
方法。
但是,如果我尝试在此处之外发送响应,即在我附加到我的消息处理例程(在不同的线程中运行)的回调中,我得到this错误,说套接字未连接。如果我尝试在Server
代码中的其他位置发送响应,请说在正在侦听传入连接的while(true)
循环中,我会收到相同的错误。
我错过了一些基本的东西吗?
修改
好的,所以我读了Two-way communication in socket programming using C,我现在想,根据那个答案,我必须修改我链接的示例,以便我回复服务器上的accept
进程返回的套接字。 我的目标是能够在客户端和服务器连接后从Send()
拨打接收回拨之外的Main()
。
请有人建议我如何修改示例以实现我想要的效果?我对此非常困惑,如果我不需要,我不想创建一个单独的流(根据我发布的问题,我不需要......)。
答案 0 :(得分:1)
如果要保持连接打开,则需要保留handler
变量,因为这是打开的套接字连接。然后,无论何时您想要发送该连接,都要检索其套接字并发送。
此外,您显然不会在handler
变量上调用Shutdown()和Close()。