socket通讯其实就相当于。邮件的发送接收。具体为下:
有两个家庭他们计划通过邮件进行联系,成员代表来负责信件的收发,家庭A和家庭B。家庭A的地址是AIP,家庭B的地址是BIP。A家庭的家庭成员有X、Y,Y是家庭A的成员代表。B家庭的家庭成员有M、N,N是家庭B的成员代表。
现在X想和M发邮件联系。 X 将信件内容交给Y , Y 将家庭B的地址BIP和M的名字写在信封上面,将信封交给邮政服务。邮政服务通过地址运输邮件。 N接收到邮政交来的信封,拆开信封。根据收邮件人的名字M将信件内容交给M。之后M收到信息并进行回复。M把信件交给N,N将家庭A的地址AIP和X的名字写在信封上。再通过邮政进行发送邮件。这就是信件的发送过程。
说了这么多,可能有的人已经明白了点什么。
在这里家庭成员就相当于网络中的运输层。而家庭成员属于应用层。邮政则是网络层,链路层,物理层的合体。
在网络编程中,家庭AB相当于是计算机,AIP和BIP则属于计算机的地址。X、Y、M、N这四个家庭成员相当于端口号。
计算机建立连接时,先创建Socket之后进行bind,bind的是计算机的地址和端口号,其次是listen,监听的是这个端口号上的请求。client上accept请求bind的IP和port的server上通过connect,之后建立连接。