1 socket通信中客户端的 port如何产生
服务端与客户端通信的port:
监听的 fd = accept()函数会在服务端为客户端通信分配一个随机的端口号;
2讨论服务端最大连接上限问题?
首先TCP 和UDP
很多说服务端最大连接上限是65535 是因为服务端端口号16位 ;这是不对的理解
一个TCP连接是套接字决定的(四元组),可以达到2^48
但是因为创建套接字需要分配资源等原因,远远达不到折这么多连接;
3 recv/write()函数的问题?
注意:write()函数的调用不是直接将数据发送到网络中,而是将数据放到了发送缓冲区;至于何时发送到网络中是内核的事情;
4 TCP优雅关闭
linux 或者 windows 分别使用 close() closesocket()关闭时是断开双向流
使用shutdown(int socket ,int howto)是关闭单向流