仅限windows平台: 传输层的监听端口和网卡个数、每个网卡的ip数目无关,他能看到的是本机的所有ip地址 绑定地址0.0.0.0表示的即是“所有地址” 也可以绑定具体地址如127.0.0.1或192.168.0.123,这个ip地址必须是存在的,这样将只能处理到该具体地址上的数据 同时绑定127.0.0.1和0.0.0.0看似冲突,其实也是可以的。这样到达127.0.0.1的数据会转给监听127.0.0.1的套接字,到达所有本机其他地址的数据会转给0.0.0.0。具体地址是优先的。这可以用来做坏事 是独占的吗?答案是肯定的,绑定到某一地址上的某端口后不能再次绑定,会失败。但是可以设置地址重用来突破这个限制。setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, 1, sizeof(1));
同时监听的意思是同一时刻让tcp的某一端口和udp的同一数值的端口同时处于listening状态 上面有网友说udp的不能叫监听,应该有个其他的叫法。我认为都可以,只要把意思表达出来即可 tcp监听办法: SOCKET sock = socket(TCP) sockaddr_in sin sin.port = htons(xxx) bind(sock, sin) listen(sock) 这样就进入了监听状态,在xxx端口,接下来可以accept了 udp监听办法 SOCKET sock = socket(UDP) sockaddr_in sin sin.port = htons(xxx) bind(sock, sin) 这样就进入了监听状态,在xxx端口,接下来可以recvfrom和sentto了 一般的,如果有另一个请求(无论是否在同一个进程,无论是tcp还是udp)也监听xxx端口,会在bind处报错(一般情况,具体不展开了) 两点: 1、端口不是物理概念,仅仅是协议栈中的两个字节 2、TCP和UDP的端口完全没有任何关系,完全有可能又有一种XXP基于IP,也有端口的概念,这是完全可能的
[quote=引用 19 楼 lianshaohua 的回复:] [quote=引用 18 楼 zhao4zhong1 的回复:] [quote=引用 14 楼 lianshaohua 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] [quote=引用 10 楼 lianshaohua 的回复:] [quote=引用 5 楼 zhao4zhong1 的回复:] [quote=引用 4 楼 lianshaohua 的回复:] 互不影响,并且UDP不叫监听,只有TCP才叫监听
[quote=引用 14 楼 lianshaohua 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] [quote=引用 10 楼 lianshaohua 的回复:] [quote=引用 5 楼 zhao4zhong1 的回复:] [quote=引用 4 楼 lianshaohua 的回复:] 互不影响,并且UDP不叫监听,只有TCP才叫监听
[quote=引用 18 楼 zhao4zhong1 的回复:] [quote=引用 14 楼 lianshaohua 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] [quote=引用 10 楼 lianshaohua 的回复:] [quote=引用 5 楼 zhao4zhong1 的回复:] [quote=引用 4 楼 lianshaohua 的回复:] 互不影响,并且UDP不叫监听,只有TCP才叫监听
[quote=引用 12 楼 zhao4zhong1 的回复:] [quote=引用 10 楼 lianshaohua 的回复:] [quote=引用 5 楼 zhao4zhong1 的回复:] [quote=引用 4 楼 lianshaohua 的回复:] 互不影响,并且UDP不叫监听,只有TCP才叫监听
[quote=引用 13 楼 xuzhouweihao 的回复:] 同时监视是什么意思啊? 是不是说这个端口同时支持UDP和TCP服务啊? 如果是这样的话,如果过来一个TCP或者UDP的包, 在ip层处理时,会判断是否是UDP协议的包还是TCP协议的,然后分别处理。
TCP 和 UDP 的端口是不冲突的,各收各的。 而且很多标准服务都是 TCP 和 UDP 在相同的端口提供相同的服务。
同时监视是什么意思啊? 是不是说这个端口同时支持UDP和TCP服务啊? 如果是这样的话,如果过来一个TCP或者UDP的包, 在ip层处理时,会判断是否是UDP协议的包还是TCP协议的,然后分别处理。
64,643
社区成员
250,474
社区内容
加载中
试试用AI创作助手写篇文章吧