[原创]端口与socket

本文主要介绍了socket在网络程序通讯中的工作原理。以ftp为例,阐述了控制命令传输端口21和数据传输端口20上socket的工作方式,包括监听、建立连接等过程,还提及多个socket工作不会混淆,以及控制命令传输socket对应线程处理数据传输,最后提到PORT和PASV模式实现待续。
socket--插座,套接字
网络程序的的通讯成为一个程序的socket插座流入到另一个程序的socket插座

端口号与socket
比如ftp负责控制命令传输的端口21,有一个socket绑定到这个端口(记为sCtrlSocket),一直监听,一旦监听到有连接请求,就Socket tempSocket = sCtrlSocket.Accept();这个时候客户端上的一个socket(没有对应客户机上的一个端口)就与服务器上的tempSocket建立了一个链接,服务器上的tempSocket不是独占21端口而是通过21端口与客户端建立了一个传输通路,之后可以有许许多多与tempSocket一样的服务器上的socket去和发来连接请求的客户端socket建立链接.
tempSocket1,tempSocket2,tempSocket3...............工作起来之间当然不会出现混淆,因为他们都是通过自己的一个链路在传输着.
但是ftp的特殊在于除了控制命令传输还有数据的实际传输
设计时当然是一个tempSocket(控制命令传输用)对应一个线程,进入他的线程之后,如果需要数据传输,就在这个线程中:myDataSocket = sDataSocket.Accept();//sDataSocket是绑定到服务器上20端口的负责数据传输的,这样许多客户端之间就不会有干涉.
当然还要说PORT和PASV两种模式在程序中的实现..........(待续)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值