两个套接字分别是TCP和UDP类型的,他们可以使用相同的端口号吗?
可以,操作系统负责把传递到内部的数据适当分配给套接字,这时就利用端口号,也就是说,通过NIC接收的数据内有端口号,操作系统正式参考此端口号把数据传输给相应端口的套接字,而套接字的类型有分为TCP面向连接的套接字和UDP面向消息的套接字,两种套接字类型,操作系统是可以按接收到的数据按套接字类型传输给相应的端口号套接字,所以TCP套接字和UDP套接字可以共用相同端口。
两个不同的TCP套接字是不可以绑定到同一个端口上的。
套接字accept()函数返回的新套接字有没有占用新的端口?
没有占用新的端口
http://blog.csdn.net/u011555996/article/details/72877549
现在使用多路IO复用epoll等,配置好点的服务器可以支持数十万个并发连接,端口号为16位,最多才2^16-1,且加上一些常用的端口号不能使用,可用的端口号都没那么多。2、现在服务器大多使用防火墙,防火墙只对特定端口开放。如果accept随机分配端口号,会不能通过防火墙。
TCP/IP协议中,IP协议是端到端的协议,它只是负责把把数据发送到端,交付给上层而已。运输层TCP、UDP加上了端口号,目的是区分不同的应用。
一个端口肯定只能绑定一个socket。
那么,当客户端发送数据过来的时候