在python中关闭TCP套接字的正确方法

富勒弗

我目前正在使用python上的服务器+客户端组合,正在使用TCP套接字。从网络类中,我知道应该逐步关闭TCP连接,首先发送信号,它要关闭连接并等待确认,然后另一端也这样做。之后,可以安全地关闭插座。
我已经在python文档函数中看到过socket.shutdown(flag),但是我看不到如何在理论上关闭TCP套接字的这种标准方法中使用它。据我所知,它只是阻止阅读,写作或两者兼而有之。
在python中关闭TCP套接字的最好,最正确的方法是什么?是否有用于关闭信号的标准功能,或者我需要自己实现这些功能?

匿名

根据python文档说:

严格来说,应该在关闭套接字之前在套接字上使用shutdown。关机是另一端套接字的建议。根据您通过的论据,它可能表示“我不再发送,但我仍会听”或“我不在听,好骑!”。但是,大多数套接字库都习惯于程序员忽略使用这种礼节,以至于通常关闭与shutdown()相同;关闭()。因此,在大多数情况下,不需要显式关闭。

我认为关闭TCP连接的最正确方法是在关闭连接之前使用shutdown,因为close它不是原子的!这可能会导致一些错误。假设您正在使用close不带功能shutdown且数据未正确发送到服务器的情况,同时python关闭连接并且服务器无法回复客户端,现在另一端的套接字可能会无限期挂起。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C中的套接字:关闭套接字的正确方法

来自分类Dev

正确关闭unix套接字的方法

来自分类Dev

如何在春季正确关闭TCP套接字连接?

来自分类Dev

如何关闭python中的套接字连接?

来自分类Dev

仅在成功传输后关闭Greenlet中的TCP套接字

来自分类Dev

在.NET Core 3.1中关闭C#套接字的正确方法是什么?

来自分类Dev

在WinForms应用程序中关闭套接字服务器的正确方法?

来自分类Dev

如何正确关闭boost :: asio中的套接字?

来自分类Dev

在 PHP 中关闭套接字

来自分类Dev

Swift中的TCP套接字

来自分类Dev

如何正确关闭套接字及其InputStream?

来自分类Dev

Java TCP套接字未正确接收

来自分类Dev

为什么线程中的python套接字无法始终正确关闭(即如果我连续多次运行该程序)

来自分类Dev

为什么在运行方法中关闭套接字?

来自分类Dev

模拟 TCP 套接字以进行单元测试的 Python 方法

来自分类Dev

套接字__exit__在python中关闭吗?

来自分类Dev

通过Python中的TCP套接字发送文件

来自分类Dev

Python 2.7.8:套接字-TCP套接字中的客户端服务器数据丢失

来自分类Dev

在python中设置全局套接字超时的正确方法是什么?

来自分类Dev

Spring Integration TCP - 完全关闭监听套接字的好方法是什么

来自分类Dev

在C套接字编程中写入/读取整数的正确方法

来自分类Dev

在C套接字编程中写入/读取整数的正确方法

来自分类Dev

linux套接字:在C中关闭套接字

来自分类Dev

使用Angular JS,在更改路线时关闭Web套接字连接的正确方法是什么?

来自分类Dev

Python 3:服务器套接字未正确关闭,收到空白消息的无限循环

来自分类Dev

在子进程中关闭打开的套接字

来自分类Dev

R中的ZeroMQ,如何关闭套接字

来自分类Dev

从崩溃的程序中关闭打开的套接字

来自分类Dev

是什么导致Java TCP套接字关闭?

Related 相关文章

  1. 1

    C中的套接字:关闭套接字的正确方法

  2. 2

    正确关闭unix套接字的方法

  3. 3

    如何在春季正确关闭TCP套接字连接?

  4. 4

    如何关闭python中的套接字连接?

  5. 5

    仅在成功传输后关闭Greenlet中的TCP套接字

  6. 6

    在.NET Core 3.1中关闭C#套接字的正确方法是什么?

  7. 7

    在WinForms应用程序中关闭套接字服务器的正确方法?

  8. 8

    如何正确关闭boost :: asio中的套接字?

  9. 9

    在 PHP 中关闭套接字

  10. 10

    Swift中的TCP套接字

  11. 11

    如何正确关闭套接字及其InputStream?

  12. 12

    Java TCP套接字未正确接收

  13. 13

    为什么线程中的python套接字无法始终正确关闭(即如果我连续多次运行该程序)

  14. 14

    为什么在运行方法中关闭套接字?

  15. 15

    模拟 TCP 套接字以进行单元测试的 Python 方法

  16. 16

    套接字__exit__在python中关闭吗?

  17. 17

    通过Python中的TCP套接字发送文件

  18. 18

    Python 2.7.8:套接字-TCP套接字中的客户端服务器数据丢失

  19. 19

    在python中设置全局套接字超时的正确方法是什么?

  20. 20

    Spring Integration TCP - 完全关闭监听套接字的好方法是什么

  21. 21

    在C套接字编程中写入/读取整数的正确方法

  22. 22

    在C套接字编程中写入/读取整数的正确方法

  23. 23

    linux套接字:在C中关闭套接字

  24. 24

    使用Angular JS,在更改路线时关闭Web套接字连接的正确方法是什么?

  25. 25

    Python 3:服务器套接字未正确关闭,收到空白消息的无限循环

  26. 26

    在子进程中关闭打开的套接字

  27. 27

    R中的ZeroMQ,如何关闭套接字

  28. 28

    从崩溃的程序中关闭打开的套接字

  29. 29

    是什么导致Java TCP套接字关闭?

热门标签

归档