TCP多路复用

一个Socket地址是由(IP地址:端口号)组成的。

对于TCP UDP 来说,将传入的分组报文匹配到某个套接字的过程是一样的,可以归纳为一下几点:

1、 套接字数据结构中的本地端口号必须与传入的分组报文的目的端口号相匹配。

2、 在套接字数据结构中,任何包含了通配符(* )的字段可以匹配分组报文中的相应字段的任何值。

3、 如果有一个以上的套接字数据结构与传入的分组报文地址的四个字段匹配,那么通配符最少的获得该分组报文。

确定本地或远程的地址和端口号

对于ServerSocket ,所有构造函数都要求传入本地端口号。本地地址可能会在构造函数中指定,否则,就使用通配符( * )地址。 ServerSocket 的远程地址和端口号始终是通配符。

 

对于Socket ,所有构造函数都要求传入特定的远程地址和端口号。本地地址或端口号可能会在构造函数中指定,否则,本地地址就使用用来建立到服务器的连接的网络接口地址,本地端口号就随机选择一个大于 1023 的未使用端口号。

 

对于accept 方法返回的 Socket 实例,本地地址是从客户端发起的初始握手消息的目的地址,本地端口号是 ServerSocket 的本地端口号,远程地址和端口号则是客户端的本地地址和端口号。

 

 

对于DatagramSocket ,本地地址和端口号可能会在构造函数中指定,否则,本地地址将使用通配符地址,本地端口号则随机选择一个大于 1023 的未使用端口号,远程地址和端口号都初始化为通配符并一直保持下去,除非调用 connect 方法指定了特定的值。

猜你喜欢

转载自wen866595.iteye.com/blog/1173931