套接字的关闭过程

    通常我们调用closesocket关闭套接字,套接字的关闭过程,有以下三种情况:

    1、取消没有进行的发送操作,系统在后台发起一个关闭过程,向对等方发送FIN报文,并等待对等方的FIN报文。整个关闭过程不会产生任何的事件(WSAEventSelect)和消息(WSAAsyncSelect)。

    2、直接释放占用的系统资源,没有向对等方发送任何的数据,也不会发送缓冲队列的数据;

    3、等待一段时间,如果能够在指定时间内将未发送的数据发送出去,那么会在后台发起一个关闭过程;如果不能够在指定时间内发送完数据,则立即释放资源,也不会向对等方发送数据。这种情况的关闭过程同样不会产生事件和消息。


    新建套接字,调用closesocket的默认行为是第一种情况。可以通过setsockopt修改默认行为,具体的设置参见MSDN对SO_LINGER, SO_DONTLINGER。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python套接字通信是指使用Python编程语言中的套接字socket)库进行网络通信的过程套接字是网络编程中常用的一种实现方式,它提供了在网络上进行数据传输的接口。Python的套接字库包括了一系列函数和类,可以用于创建和管理套接字对象,并实现数据的发送和接收。 在Python中,套接字通信的基本流程通常包括以下几个步骤: 1. 导入套接字库:首先需要在程序中导入socket模块,即使用`import socket`语句。 2. 创建套接字对象:使用`socket.socket()`函数创建一个套接字对象,该函数有两个参数,分别是套接字的地址族和套接字的类型。常见的地址族有AF_INET(IPv4)和AF_INET6(IPv6),常见的套接字类型有SOCK_STREAM(TCP)和SOCK_DGRAM(UDP)。 3. 绑定套接字到地址和端口:使用`bind()`方法将套接字绑定到指定的地址(IP地址)和端口号,以便在该地址和端口上进行监听和通信。 4. 监听连接请求(对于TCP通信):使用`listen()`方法开始监听来自客户端的连接请求。该方法有一个参数,表示最大连接数。 5. 接受连接请求(对于TCP通信):使用`accept()`方法接受来自客户端的连接请求,并返回一个新的套接字对象和客户端的地址信息。 6. 发送和接收数据:使用新的套接字对象进行数据的发送和接收。可以使用`send()`和`recv()`方法分别发送和接收数据。也可以使用`sendall()`方法连续发送所有数据,并自动处理数据的分割和传输。对于TCP通信,数据是可靠的,保证按发送的顺序接收。对于UDP通信,数据是不可靠的,可能丢失或乱序。 7. 关闭套接字:使用`close()`方法关闭套接字,释放资源。 套接字通信可以用于实现多种应用,例如客户端-服务器模式的网络通信、文件传输、网络游戏、远程控制等。Python中的套接字库提供了丰富的功能和方法,使得网络通信编程变得简单和方便。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值