我有一个客户端通过C伯克利套接字连接到服务器。我(尝试)通过使用MSG_DONTWAIT和MSG_PEEK调用套接字上的recv()定期检查连接是否仍然有效。但是,我发现这个调用在某些情况下(例如,在连接的接口被关闭之后)和在没有数据可读取的情况下返回EAGAIN。因此,我无法区分使用此方法连接是否仍然有效。
这是我的功能:
/* return 1 if still connected, 0 otherwise */
int still_connected()
{
int nbytes_recvd = 0;
char buf[2];
int err;
nby
我在我的应用程序中使用iOS 7多点框架,但我遇到了设备断开连接的问题。如果我在两个设备中打开应用程序:设备A和设备B,这两个设备会自动相互连接。然而,几秒钟后,设备A与设备B断开连接。即,最初的连接是这样的:
A ---> B
A <--- B
几秒钟后:
A ---> B
A B
设备A保持连接,但设备B获取的是MCSessionStateNotConnected。
这意味着A可以向B发送数据,但B不能回复。我试图通过检查设备是否已连接来绕过此问题,如果未连接,则使用以下命令重新启动连接:
[browser invitePeer:peerID toSession