一点细节 关于linux下tcp断开连接时的情况
来源:互联网 发布:热云数据招聘 编辑:程序博客网 时间:2024/05/28 16:08
如果客户端先断开连接,server端再断开,那么server端占用的端口号立马可以用。
但是客户端未断开情况下,server自行关闭,那么占用的端口将进入TIME_WAIT状态而暂时不可使用。
因为主动断开那边会出现TIME_WAIT,而被动断开则不会吗
#include "mytcplib.h"static void servecho(int connfd, const struct sockaddr_in *cliaddr);int main(int argc, char **argv){int sockfd, connfd;int childpid;int len;struct sockaddr_in servaddr, cliaddr;sockfd = Socket(AF_INET, SOCK_STREAM, 0);memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(8081);servaddr.sin_addr.s_addr = INADDR_ANY;Bind(sockfd, (SA *)&servaddr, sizeof(servaddr));Listen(sockfd, LISTENQ);for(;;){len = sizeof(cliaddr);connfd = Accept(sockfd, (SA *)&cliaddr, &len);if((childpid = fork()) == 0){close(sockfd);servecho(connfd, &cliaddr);close(connfd);exit(0);}else{waitpid(NULL, NULL, NULL);close(connfd);}}}void servecho(int connfd, const struct sockaddr_in *cliaddr){char recv[1024];int n;printf("connection from ip: %s at port: %d\n", inet_ntoa(cliaddr->sin_addr),ntohs(cliaddr->sin_port));while((n = read(connfd, recv, sizeof(recv))) > 0){//if(errno == EINTR)//continue;printf("Received %d bytes , %s\n", n, recv);write(connfd, recv, strlen(recv));memset(recv, 0, sizeof(recv));}printf("Disconnected!\n");}
echocli,c
#include "mytcplib.h"static void cliecho(int sockfd){}int main(int argc, char **argv){int sockfd;struct sockaddr_in servaddr;char buff[1024];int n;sockfd = Socket(AF_INET, SOCK_STREAM, 0);memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(8081);inet_pton(AF_INET, argv[1], &servaddr.sin_addr);Connect(sockfd, (SA *)&servaddr, sizeof(servaddr));memset(buff, 0, sizeof(buff));while(fgets(buff, sizeof(buff), stdin) != NULL){printf("%s", buff);buff[strlen(buff) - 1] = 0;write(sockfd, buff, strlen(buff));n = read(sockfd, buff, sizeof(buff));//printf("%d\n",n);snprintf(buff + n, 50 ,"Received %d bytes.\n", n);write(1, buff, strlen(buff));memset(buff, 0, sizeof(buff));}close(sockfd);exit(0);}
- 一点细节 关于linux下tcp断开连接时的情况
- TCP连接断开情况处理
- 关于检测TCP连接断开
- TCP连接中的异常断开情况处理
- TCP连接中的异常断开情况处理
- tcp断开连接时的四次挥手
- Linux 下TCP连接关闭情况分析
- Linux 下TCP连接关闭情况分析
- Linux 下TCP连接关闭情况分析
- linux下查看TCP网络连接情况
- TCP连接的部分细节及边界情况分析
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- TCP协议连接建立与连接断开过程(含断开时的TCP状态图)
- TCP的连接和断开
- TCP的连接与断开
- TCP的连接和断开
- 时间管理——我之窥见
- 纠正国人对Linux的误解和错误认识
- 中国手机败阵苹果原因调查:厂商忙追赶无暇创新
- 使用Oracle显式游标及for循环
- 如何进行良好的程序设计(1)
- 一点细节 关于linux下tcp断开连接时的情况
- 指向指针的指针做函数的参数
- 电脑故障------xp下添加和删除程序打不开,会弹出0x00310030内存不能读。
- Facebook工程发布技术的幕后故事
- Linux下用source insight的另一种方式--Samba
- 【Python】Python使用smtplib发送简单文本邮件
- JAVA学习笔记2
- c++内存管理
- CUDA+Vector测试程序