Python中网络编程对socket accept函数的理解

本文深入解析服务器端如何使用socket()创建监听套接字,及accept()函数如何为每个客户端连接生成独立的通信套接字,阐述了服务器端与多个客户端间的数据收发机制。

在服务器端,socket()返回的套接字用于监听(listen)和接受(accept),这个套接字不能用于与客户端之间发送和接收数据。

 

accept()接受一个客户端的连接请求,并返回一个新的套接字,不同于以上socket()返回的用于监听和接受客户端的连接请求的套接字;与此客户端通信是通过这个新的套接字上发送和接收数据来完成的。

每个连接进来的客户端,都会通过accept函数返回一个不同的客户端的socket对象和属于客户端的套接字,代码如图

 

假设一共有3个客户端连接到服务器端,那么在服务器端就移动有4个套接字,第1个是socket()返回的,用于监听的套接字;其余3个是分别调用3次accept()返回的不同的套接字。

如果已经有客户端连接到服务器端,不再需要监听和接受更多的客户端连接的时候,可以关闭由socket()返回的套接字,而不会影响与客户端之间的通信。

 

 

原文地址:https://www.cnblogs.com/cindy-cindy/p/8022009.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值