Programming 板


LINE

※ [本文转录自 C_and_CPP 看板] 作者: james732 (好人超) 看板: C_and_CPP 标题: [问题] 关於socket程式与TCP观念 时间: Fri Apr 9 04:53:29 2010 目前想要做一个测试: 当一个主机使用 listen, accept 等函式做为 TCP server 时 它同一个时间最多能建立几个 TCP 连线呢?这个限制又是因为什麽? 对於不同的作业系统(ubuntu Linux, Windows)是否会有不同的表现? server 端程式码:http://nopaste.csie.org/65edc 用无穷回圈不断的接受连线,什麽事都不做,停留在 ESTABLISHED 状态 client 端程式码:http://nopaste.csie.org/c0da0 用无穷回圈不断的 connect,同样的什麽都不做,停留在 ESTABLISHED 状态 目前发现有两个因素会限制连线的上限 ulimit -n : 单一 process 能使用的 File descriptor 上限 sysctl -w net.ipv4.ip_local_port_range="1024 65000" : 能用的 local port 范围 不过对於目前测试的结果,有些状况不太明白 1. 使用 netstat -n 观察,server 端的 port 一律是使用 53764 http://james545.myweb.hinet.net/1.jpg
其实我不太懂为什麽都是同一个 port 呢?这麽多的 client 可以用同一个? 2. 我是这麽执行程式的: server 端:./server 1234 ( server 监听 TCP Port 1234 ) client 端:./client 1234 ( server 的 IP 写死在程式里, 连至 Port 1234 ) 不过 client 大约建立六万的连线後,就会发生错误讯息 connect: Cannot assign requested address 判断是 client 自己的 local port 用尽了,即使再开启另一个 process 也相同 这个时候就必须要再用另外一部电脑来测试了 有没有办法解决这个问题呢? 3. 要像这样测试 TCP 连线的上限,还有没有其他的办法呢? (譬如说现成的工具套件?) 4. 其实我一直不太能把 socket API 与 TCP/IP 的观念很好的连结在一起 譬如说,我不懂 accept 与 connect 这两个函式是怎麽搭配的 关於这个,有没有比较好的参考资料呢? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.171.46 ※ 编辑: james732 来自: 140.117.171.46 (04/09 04:58)
1F:→ chingggg:4. 如果是 accept 与 connect 这两个函式的搭配, 建议你 04/09 05:39
2F:→ chingggg:看 UNIX Network Programming, Volume 1 04/09 05:39
3F:→ chingggg:如果是 socket API 与 TCP/IP 的观念搭配, 建议你看 04/09 05:40
4F:→ chingggg:TCP/IP Illustrated, Volume 2: The Implementation 04/09 05:40
5F:→ james732:vol1 有念过了 vol2 买了好久都还没有看 orz 04/09 05:41
6F:→ chingggg:2, 3 请参照 TCP UDP 的 header format 04/09 05:46
9F:→ chingggg:因为在 TCP/IP 里面, port 就是用 16-bit 来表示, 2^16 = 04/09 05:47
10F:→ chingggg:65536, 我想这就是你问题的解答 04/09 05:48
11F:→ james732:我知道2的原因是受限於port数量 只是不知道能不能更多XD 04/09 09:39
--



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.171.46
12F:→ rofellosx:上限看记忆体空间多少吧.. 114.32.64.90 04/09 10:54
13F:→ try123h:每个tcp client 都要有一个local port 218.160.41.89 04/10 01:15
14F:→ try123h:所以理论上,本机端tcp client可以到65535 218.160.41.89 04/10 01:16
15F:→ try123h:而tcp server本来就是1个port,很多client 218.160.41.89 04/10 01:17
16F:→ try123h:连进来,不会占用到server端的其它port 218.160.41.89 04/10 01:17
17F:→ try123h:所以在server端, 理论上client是无限 218.160.41.89 04/10 01:18
18F:→ try123h:当然会受限於OS的"设定",以及程式的写法 218.160.41.89 04/10 01:19
19F:→ try123h:bbs, bbs server的port是21, 我们是client 218.160.41.89 04/10 01:20
20F:→ try123h:所以你看ptt 一次都超过10万人, 但 ptt 218.160.41.89 04/10 01:21
21F:→ try123h:server只会占用到1个port (21) 218.160.41.89 04/10 01:21
22F:→ try123h:有错再请网友指正:) 218.160.41.89 04/10 01:22
23F:→ operationcow:他不是已经只 listen 1234 ? 140.112.243.43 04/10 03:43







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP