java 板


LINE

※ 引述《Killercat (杀人猫™)》之铭言: : ※ 引述《LaPass (LaPass)》之铭言: : 不要用单纯的raw socket, 稍微看一下TCP的listen/accept是怎麽实做的 : 去改一下TCP的实作方法 : Server端来说 : a TCP开一个socket port : b TCP等着这个socket port收讯息(listening) : c TCP收到Client讯息(accept), 开一个新的socket port并且告诉client该port : d TCP断开该client连结 继续listening, 新的socket port喂client资料 : Client端来说(分别对应上面的abcd) : a Client开一个socket port : b Client连结某个listening的TCP socket port : c 收到Server告诉你的接下来要跟谁接头的port number : d 从该port number取得服务 : [略] 这一篇乍看之下有些不对劲,特别是 raw socket 这说法与作者在推文里的回应。 不过作者想要表达的重点是:如果你无法在单一的串流里同时妥善地处理属於 command 与 data 的部分,可以考虑(类 FTP)把 command 与 data 分开在不同 的串流里去传输。 的确这样子对於使用 socket 串流来传输 command or data 的程式部分来说, 在实作上会比较单纯。但是实作这种服务的 server 的复杂度提高很多,server 必须同时管理多个 server socket(one for command, others for data),以及 维护各个非 command 用途的 server socket 所管理的 socket 应在什麽时刻 输出什麽 data 种种的细节。(走 HTTP protocol 都没这麽复杂,概念上 HTTP 的 command 与 data 是在同一个串流上) 注:除非你把部分 burden 转移到 client 去,client 要收 data 时要自己开 server socket 等 server site 去连接。在实务上这个要求能避免就避免,因为 这等於要求 client site 要有 global IP,不然就是要求 client 要能够妥善 去处理 NAT 的设定。 要自定 Protocol 比较简单的方式是去规范传输数据的 format 与 framing,让 双方对於任一次所传输的区块中的那个子部分是哪种意义(包括 interpret 方式) 有相同的看法/做法;为了简化单次传输所需要做的事情,而把概念上属於一个 操作的事情拆成多个子操作 flow 来完成,我个人是觉得不妥,考虑到完整性与 效率,要实作好这样的 server 是很不容易的。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.235.231 ※ 编辑: sbrhsieh 来自: 218.173.235.231 (11/19 14:29)
1F:推 LPH66:注的第一段我也是想到 FTP, 不过是 PORT 指令就是 11/19 15:51
2F:→ LPH66:不过看看大家现在 PASV 用那麽多就知道这种做法现在不太好用 11/19 15:53
3F:→ qrtt1:在 NAT 下的情况太普遍了 xd 11/19 17:08







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灯, 水草

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

TOP