当前位置: 技术问答>linux和unix
Linux中TCP通信中 send函数 如何判断 何时断开连接了 ??
来源: 互联网 发布时间:2017-04-30
本文导语: 本帖最后由 CCDDzclxy 于 2013-11-04 21:40:37 编辑 RT 我这里主要是想要判断 对方是否断网了。 我说也说不清楚,举个例子,也是我测试的代码和步骤,如下所示。 环境:两台真机(一个Win7,一个XP_sp2)处于同一局域网...
我这里主要是想要判断 对方是否断网了。
我说也说不清楚,举个例子,也是我测试的代码和步骤,如下所示。
环境:两台真机(一个Win7,一个XP_sp2)处于同一局域网。Win7上运行虚拟机CentOS_5.8,CentOS_5.8里面运行TCP Client程序;XP里面运行TCP Server程序。
TCP Client代码:
#include
#include
#include
#include
#include
#include
#include//close()
#include//struct sockaddr_in
#include//inet_ntoa
#include "pthread.h"
#define DEST_PORT 63333
#define DEST_IP_ADDRESS "192.168.2.100"
int g_skt = 0;
void zcPrintTime()
{
time_t lt; /*define a longint time varible*/
lt=time(NULL);/*system time and date*/
struct tm *ptm;
ptm = localtime(<);
printf("%04d-%02d-%02d %02d:%02d:%02dn",
ptm->tm_year+1900, ptm->tm_mon+1, ptm->tm_mday,
ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
}
/*客户端的处理过程*/
void sendInfo(int s)
{
int send_num;
int iSend = 0;
zcPrintTime();
printf("begin sendn");
while(1)
{
char bufScanf[32] = {0};
scanf("%s",bufScanf);
iSend ++;
char send_buf[32] = {0};
sprintf(send_buf, "%d", iSend);
printf("%d will be sent.n", iSend);
send_num = send(s,send_buf,1,0);
zcPrintTime();
printf("send_num : %dn", send_num);
if (send_num