三次握手
三次握手
客户端第一次syn标志,seq为0,代表序列为0发给服务器,是同步包
服务器确认ack = 1,syn信号,seq为0,发给客户端。
客户端再ack=1,seq=1,发给服务器

一个socket可以同时接受多个连接吗?
可以,但是都在同一个端口。
accept函数接受一个客户端请求后会返回一个新的SOCKFD值,当有不同的客户端同时有不同请求时,会返回不同的SOCKFD的值。这个不同的值和建立SOCKET 时生成的SOCKFD还是不同的。服务器与客户端之间的通信就是在这些不同的SOCKFD上进行的。
listen与accept的区别
java编程中根本就没有listen函数。accept是从队列中取出首个客户端。
如果很多客户端同时connect,队列就会很长,accept就会很久罗。这就是网络崩溃了。
网友评论