TCPsocket详解

本文深入探讨了TCP/IP通信中的端口生成、服务端最大连接数及其误解,以及recv/write函数的工作原理。客户端的port通常由操作系统动态分配,而服务端的连接上限并非仅由端口号决定,还受限于系统资源。TCP优雅关闭时,Linux和Windows系统提供了close()和shutdown()函数来断开连接,分别支持双向和单向流的关闭。
摘要由CSDN通过智能技术生成

  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)是关闭单向流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值