一个Socket地址是由(IP地址:端口号)组成的。
对于TCP 和 UDP 来说,将传入的分组报文匹配到某个套接字的过程是一样的,可以归纳为一下几点:
1、 套接字数据结构中的本地端口号必须与传入的分组报文的目的端口号相匹配。
2、 在套接字数据结构中,任何包含了通配符(* )的字段可以匹配分组报文中的相应字段的任何值。
3、 如果有一个以上的套接字数据结构与传入的分组报文地址的四个字段匹配,那么通配符最少的获得该分组报文。
确定本地或远程的地址和端口号
对于ServerSocket ,所有构造函数都要求传入本地端口号。本地地址可能会在构造函数中指定,否则,就使用通配符( * )地址。 ServerSocket 的远程地址和端口号始终是通配符。
对于Socket ,所有构造函数都要求传入特定的远程地址和端口号。本地地址或端口号可能会在构造函数中指定,否则,本地地址就使用用来建立到服务器的连接的网络接口地址,本地端口号就随机选择一个大于 1023 的未使用端口号。
对于accept 方法返回的 Socket 实例,本地地址是从客户端发起的初始握手消息的目的地址,本地端口号是 ServerSocket 的本地端口号,远程地址和端口号则是客户端的本地地址和端口号。
对于DatagramSocket ,本地地址和端口号可能会在构造函数中指定,否则,本地地址将使用通配符地址,本地端口号则随机选择一个大于 1023 的未使用端口号,远程地址和端口号都初始化为通配符并一直保持下去,除非调用 connect 方法指定了特定的值。
欢迎关注我的微信公众号: coderbee笔记。
相关推荐
IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户...
根据具体的应用环境,分析了每个请求使用一个TCP连接的局限性,提出了一种支持TCP多路复用的网络模型,并介绍了该网络模型使用的专有网络协议。在介绍多路复用技术在网络模型的应用过程中,引入了Tunnel和Channel的...
TCP 网络通信,实现点播广播,主要使用知识 IO 的多路复用,以及Linux内核链表的使用。
自己写的TCPecho服务器,利用IO多路复用技术,注意是linux源码,非windows
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器。 一个新连接到达ServerSocketChannel时,会创建一个...
cmux:连接多路复用器 cmux是通用的Go库,用于根据有效负载对连接进行多路复用。 使用cmux,可以在同一TCP侦听器上提供gRPC,SSH,HTTPS,HTTP,Go RPC以及几乎所有其他协议的服务。如何只需创建您的主侦听器,为该...
多路复用IO的简单实现,可以分别处理标准输入和TCP连接请求
一种基于多路复用的多媒体流TCP友好拥塞控制机制 一种基于多路复用的多媒体流TCP友好拥塞控制机制
代码简略的描述了IO复用的流程,以及TCP并发服务器的实现
TCP服务器IO模型之多路复用(一)POLL函数,使用POLL函数实现多路复用
8.2.2 TCP的差错检验和多路复用1
Linux-C TCP应用案例 案例1.TCP实现读与写 案例2.TCP多线程实现双向...案例3.TCP多路复用监控多个文件描述符 案例4.TCP多路复用实现多人聊天室 案例5.TCP服务端向客户端发送文件 //TCP相关API的介绍: TCP相关API介绍.
计算机 网络 论文 一种基于多路复用的多媒体流TCP友好拥塞控制机制.pdf
1.Unity完整TCP、UDP客户端请查看...3.TCP采用多路复用方式。 4.完整的数据接收缓冲区,发送队列,采用异步模型。 5.包含客户端登陆、管理。 6.支持外网,需做服务器映射。 7.支持UWP平台,HoloLens。
使用qt开发的客户端,python作为服务器开发的跨平台,跨语言,跨端服务器
muxpipe/muxpipe 在单个现有连接上多路复用 TCP 连接。 它为每个连接提供了自己的传输窗口(即将实施),从而减少了排队问题。 它还允许每个新连接立即发送数据,而无需任何额外的握手,从而最大限度地减少延迟。 ...
smux, 用于golang的简单流多路复用 简介Smux ( 收费英镑,实现收费英镑,成本为X 美元) 是用于Golang的多路复用库。 它依赖于建立可靠性和顺序的基础,比如TCP或者 KCP插件,并提供流定向复用。 这个库的最初目的是...
它依靠基础连接来提供可靠性和顺序(例如TCP或Unix域套接字),并提供面向流的多路复用。 它受到SPDY的启发,但不能与它互操作。 Yamux功能包括: 双向流 客户端或服务器均可打开流 对于NAT遍历很有用 服务器端推...
基于python的系统