易截截图软件、单文件、免安装、纯绿色、仅160KB

C/S通信时C端断网后重新连接服务端的问题

小弟才疏学浅,也不太会设计心跳包,只是用这段代码实现客户主动连接服务端的 如果服务端后于客户端开启,客户端会主动连接上服务端,现在问题我断开网线后在连接发现就连接不上了,实在有点糊涂,哪位大哥指点一下,在此感谢

connect()函数在断网情况下连接和连接一个没开启服务端的IP时是不是超时后都返回SOCKET_ERROR
那我关闭套接字重新连接 为什么断网后就连接不上了呢??????
while(1)
{
  if(connect(sockClient,(SOCKADDR*)&addr1,sizeof(SOCKADDR))==SOCKET_ERROR)
  {
        Sleep(3000);
int i=::WSAGetLastError();

if (i==10056)//socket已连接
{

int ret = send(sockClient,"心跳启动!",strlen("心跳启动!")+1,0);
if (ret >0)//连接正常
{
Sleep(10000);
continue;
}
}

//连接已经断开------------------------
/如果sock中断,创建sock
closesocket(sockClient);
sockClient=socket(AF_INET,SOCK_STREAM,0);

continue;
}
服务器断开网线后原来的监听socket就失效了,即使重新连接网线,该socket也是无效的
可以在服务器端开个线程自己连自己,不要使用127.0.0.1而使用真正IP,当自己都无法连接自己时,就该重新监听了

引用
服务器断开网线后原来的监听socket就失效了,即使重新连接网线,该socket也是无效的
可以在服务器端开个线程自己连自己,不要使用127.0.0.1而使用真正IP,当自己都无法连接自己时,


相关问答:

用C或C++如何编写求解3D魔方程序 - C/C++ / C++ 语言

请问用C或C++如何编写求解3D魔方的程序,该从何开始?
谢谢各位,帮忙提点建议吧。

http://www.mofang.net/code/176/182/6581.html

我只能突破60秒!唉。

我刚过40秒

google的android中有个OpenGL ES + ......

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

C 程序问题 (三) - C/C++ / C语言

问题一:
在对齐为4的情况下
struct BBB
{
long num;
char *name;
short int data;
char ha;
short ba[5];
}*p;
p=0x1000000;
p+0x200=____;
(Ulong)p+0x200=____;
(char*)p+0x200=____;
假设在32位C ......

向高手请教fortran 调用C 的问题

我现在要些一个fortran调用C接口的问题,但是不知道 C语言里面分配的指针怎么付给fortran,又不能在fortran立马先分配好,业务上不允许。
我写了个测试的例子。但是不行。
test.c
#include <stdio.h>
#incl ......

linux下C语言开发oracle的问题。

两个文件1.PC,1.inc
1.PC有操作oracle数据库的 ,1.inc也有操作oracle数据库 
在其他数据中如informix 中$include 1.inc就可以使用了
在ORACLE数据库重 $include 1.inc不可用 EXEC SQL include 1.inc也不可 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号