佚名通过本文主要向大家介绍了lwip tcp服务器,lwip,lwip协议栈源码详解,lwip是什么,lwip官网等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:lwip 作为服务器 同个Ip地址多次重复连接服务器
描述:
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)
{
//数据处理
}
}
解决方案1:
描述:
本帖最后由 asd046012 于 2016-01-22 18:15:12 编辑
lwipsocket severlwip socket服务器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)
{
//数据处理
}
}
解决方案1:
客户端正常关闭socket,服务端是会立即知道的。 你一定是只靠心跳检测客户端下线的,请加上socket关闭的检测。
哥几年前提的问题:如何优雅的正常断开TCP连接 - http://bbs.csdn.net/topics/370148971