作者qrtt1 (愚人)
看板LinuxDev
标题Re: [问题] socket的一些问题
时间Fri Jun 29 10:41:19 2007
※ 引述《batista630 (努力工作!!)》之铭言:
: ※ 引述《qrtt1 (愚人)》之铭言:
: : 这不是 socket 的问题
: : 是 ftp 的问题,层次差很多,已经在 TCP/IP 层之上了
: 这当然是socket的问题呀 因为我用socket再写ftp XD
: : 你用 PORT 指令可以自己指定 port
: : PASV 你送出他会给你一个 ip+port -> 140,133,31,33,123,134
: : 最後二个是 port, 123 * 256^1 + 134 * 256 ^ 0
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: 我知道怎麽换算,我好奇的是那个PORT NUMBER如何决定
: 因为我在写SERVER 所以我要给CLIENT PORT NUMBER去开DATA CHANEL
: : 应该直接查 RFC 954
: 我RFC959看心酸的XD..
: : 应该有 SYST 之类的指令
: 我会去翻翻标准程式库
: : 当你用到需要传输 DATA 时的指令就要通知他开 (用 PASV 或 PORT)
: : 什麽时候关...呃..没想过 不过用完就关了吧
: : FTP 的设计并不是一直保持连线的,顶多只有 Data Interpret Channel 会一直连着
: : 你跟他要一个 port 就是要他开 Datat Transfer Process
: : 有了连线再下传资料的指令比较合理
那就是你连上的 PI port -1 就是 DTP port
不然 client 应该要送出 PASV 问你有什麽 port 开好给他连
或是他要用 PORT 指定自己开给你连
你直接 try 应该就有结果了
PASV 比较好 try 因为现在动不动就 nat orz
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.245.72.92
1F:→ qrtt1:纯印象, 写 ftp app 是很久的记忆了 XD 06/29 10:41
※ 编辑: qrtt1 来自: 60.245.72.92 (06/29 10:43)