服务器在监听8888端口。假设IP地址是A。
一个客户端B连接过来,关系就是B:X->A:8888服务器会知道这个socket对象是和B:X关联的。
同样的客户端B连接过来,那么它就不能再用X这个端口了。要换一个。
如果是令一个客户端C,则是C:Y->A:8888当然X和Y是可以一样的。因为他们是不同的客户端IP。
连接成功之后,发送和接收就方便了。服务器向某个socket对象发送数据即可。其实绑定端口,就是编程的人员预先给服务器设置一个确定的端口,而不是由系统随机分配一个端口。
服务器绑定了某一个端口,客户端才能通过该端口向服务器发起连接请求·。如果不绑定端口,而是由系统随机分配给服务器一个端口,既然是随机的,那么客户端也不知道系统分配的是哪个端口。客户端不知道服务器的端口,还怎么与服务器通信呢?
客户端就不需要绑定端口了,系统随机分配一个就可以了。当客户端第一次向服务器发送数据时,客户端的端口号随同数据一起就给了服务器。服务器有了客户端的端口自然就可以向客户端发送数据。
当然除了绑定端口外还要绑定IP地址。
以上纯属个人理解,仅供参考,谢谢。
知识无界限,
这个答案是我照搬的
个人观点:是客户端寻找服务端,只需服务端有明确的标识就可以了。服务端与客户端连接时,客户端的套接字,ip地址已经传给了服务端,这时已经建立好了连接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)