理解网路编程 服务器端 套接字

此时套接字FD 只用于监听  不用于通信 只是监听client端是否有新的通信描述符过来

 

accept函数接受⼀个客户端请求后会返回⼀个新的SOCKFD值,当有不同的客户端同时有不同请求时,会返回不同的SOCKFD的值。这个
不同的值和建⽴SOCKET 时⽣成的SOCKFD还是不同的。服务器与客户端之间的通信就是在这些不同的SOCKFD上进⾏的。
在服务器端,socket()返回的套接字⽤于监听(listen)和接受(accept)客户端的连接请求。这个套接字不能⽤于与客户端之间发送和接
收数据。accept()接受⼀个客户端的连接请求,并返回⼀个新的套接字。所谓“新的”就是说这个套接字与socket()返回的⽤于监听和接受
客户端的连接请求的套接字不是同⼀个套接字。与本次接受的客户端的通信是通过在这个新的套接字上发送和接收数据来完成的。
再次调⽤accept()可以接受下⼀个客户端的连接请求,并再次返回⼀个新的套接字(与socket()返回的套接字、之前accept()返回的套接字
都不同的新的套接字)。这个新的套接字⽤于与这次接受的客户端之间的通信。假设⼀共有3个客户端连接到服务器端。那么在服务器端就
⼀共有4个套接字:第1个是socket()返回的、⽤于监听的套接字;其余3个是分别调⽤3次accept()返回的不同的套接字。如果已经有客户
端连接到服务器端,不再需要监听和接受更多的客户端连接的时候,可以关闭由socket()返回的套接字,⽽不会影响与客户端之间的通信。
当某个客户端断开连接、或者是与某个客户端的通信完成之后,服务器端需要关闭⽤于与该客户端通信的套接字。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值