TCP重连问题 快速多次重连
各位大神好。现在我使用 lwip 1.4.1协议建立个小型服务器(大概3个设备会连上服务器(设备是手机)。客户端使用一个ip地址 不同的端口和服务器建立TCP连接(使用环境:一个连上服务器后 马上断开,然后过一两秒又马上连接,心跳是10秒一个),现在我们测试发现:一个连上后 马上断开 过两秒后马上连接 手机有做关闭处理的 这时必须要等先前那个连接要跑到心跳检测程序 执行关闭处理后 另一个才能连接上。手机APP方面没问题 已经测试过了 能 和其它服务器建立两路连接 现在这个问题已经困扰我两天 请大神们指点一下啊! 下面是服务器的代码
int listenfd;
int remotefd;
struct sockaddr_in local_addr,remote_addr;
listenfd = socket(AF_INET,SOCK_STREAM,0);
if(listenfd == -1)
{
printf("listenfd error\n");
return;
}
int n_yin=1;
setsockopt(listenfd,SOL_SOCKET ,SO_REUSEADDR,(const char*)&n_yin,sizeof(n_yin));
local_addr.sin_family = AF_INET;
local_addr.sin_port = htons(7685);
local_addr.sin_addr.s_addr = htonl(INADDR_ANY);
local_addr.sin_len = sizeof(local_addr);
len = sizeof(remote_addr);
if (bind(listenfd, (struct sockaddr *) &local_addr, sizeof(local_addr)) < 0)
{
printf("tcp bind error\r\n");
return ;
}
if(listen(listenfd,3) < 0)
{
printf("listen error\n");
return;
}
while(1)
{
remotefd = accept(listenfd,(struct sockaddr_in *)&remote_addr,&len);
if(remotefd < 0)
{
//数据处理
}
}