免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4461 | 回复: 16
打印 上一主题 下一主题

SOCKET TIME_WAIT问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-10 23:50 |只看该作者 |倒序浏览
server程序:

  1. RESULT main()
  2. {
  3.         char szDataTest[MSG_AREA_SIZE] = "failed";
  4.         char szIPAddr[20];
  5.        
  6.         int         nSock,nListenSock;
  7.         int  nRead;

  8.         ASSERT_RESULT(CreateSock(&nListenSock,4444))
  9.        
  10.         if (!VERIFY(AcceptSock(&nSock, nListenSock,szIPAddr)))
  11.         {
  12.                 close(nListenSock);
  13.                 return EXCEPTION;
  14.         }
  15.                
  16.         nRead = read(nSock,szDataTest,10);
  17.         fprintf(stderr,"read=[%s]--%d",szDataTest,nRead);
  18.        
  19.         close(nSock);
  20.         return NORMAL;
  21. }
复制代码


client程序:

  1. RESULT main()
  2. {
  3.         int nSock;
  4.        
  5.         ASSERT_RESULT(ConnectSock(&nSock,4444,"172.168.20.251",30))
  6.         ASSERT(write(nSock,"test ok",7) != -1)

  7.         close(nSock);
  8.         return NORMAL;
  9. }
复制代码


=================
就这么简单,运行结果:
server:
read=[test ok]--7
client:
---End------
为什么程序结束后,会出现4444端口TIME_WAIT?
谢谢

论坛徽章:
0
2 [报告]
发表于 2003-07-10 23:53 |只看该作者

SOCKET TIME_WAIT问题?

client:
close(nSock)前少一句
fprintf(stderr,"---End------";

论坛徽章:
0
3 [报告]
发表于 2003-07-11 01:16 |只看该作者

SOCKET TIME_WAIT问题?

端口都是会保存一段时间后才可以继续用的
这时间可能是3s左右

可以参考以前的tcp讨论或是看stevens网络编程

论坛徽章:
0
4 [报告]
发表于 2003-07-11 11:16 |只看该作者

SOCKET TIME_WAIT问题?

但是,仅仅连接不WRITE,就不会出现TIME_WAIT,

论坛徽章:
0
5 [报告]
发表于 2003-07-11 11:22 |只看该作者

SOCKET TIME_WAIT问题?

Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
   tcp        0      0  scosysv.4444           scosysv.1097           TIME_WAIT

tcp        0      0  scosysv.1100           sco_client.6800        SYN_SENT
==============================================
开始是TIME_wait状态,过几秒转为SYN_SENT状态。
什么原因?

论坛徽章:
0
6 [报告]
发表于 2003-07-11 11:56 |只看该作者

SOCKET TIME_WAIT问题?

路由表有这条:
172.168.20       172.168.20.252     UC          1        0  net0
/etc/hosts:
172.168.20.24   sco_client
本机地址:172。168。0。252
/etc/hosts封上sco_client,不会出现SYN_SENT
何原因?

论坛徽章:
0
7 [报告]
发表于 2003-07-11 17:56 |只看该作者

SOCKET TIME_WAIT问题?


偶今天下了UNP
看完了再回答你吧
好久没有看书了

论坛徽章:
0
8 [报告]
发表于 2003-07-11 18:03 |只看该作者

SOCKET TIME_WAIT问题?

[quote]原帖由 "m4a1"]但是,仅仅连接不WRITE,就不会出现TIME_WAIT,[/quote 发表:
   

怎么讲?什么叫仅仅连接不WRITE?此时关闭连接吗?如果关闭,还是要TIME_WAIT的。不关闭当然不出现。

论坛徽章:
0
9 [报告]
发表于 2003-07-11 18:05 |只看该作者

SOCKET TIME_WAIT问题?

原帖由 "m4a1" 发表:
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
   tcp        0      0  scosysv.4444           scosysv.1097           TIME_WAIT

tcp        0      0  scosysv.1100      ..........
   

你这是两个不同的TCP连接,状态不同正常啊。

论坛徽章:
0
10 [报告]
发表于 2003-07-11 18:08 |只看该作者

SOCKET TIME_WAIT问题?

[quote]原帖由 "m4a1" 发表:
路由表有这条:
172.168.20       172.168.20.252     UC          1        0  net0
/etc/hosts:
172.168.20.24   sco_client
本机地址:172。168。0。252
/etc/hosts封上sco_client,不会出现SYN_SENT
何原
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP