Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python socket.bind()与socket.listen()的比较_Python_Sockets - Fatal编程技术网

Python socket.bind()与socket.listen()的比较

Python socket.bind()与socket.listen()的比较,python,sockets,Python,Sockets,我已经学会了如何编写python服务器,并且发现我的知识中有一个漏洞。 因此,我很高兴了解更多关于socket模块的命令bind(),listen()之间的区别 此外,当我使用带有特定端口的bind()作为参数时,在使用listen()方法之前,特定端口是否已经在使用中 谢谢,祝你度过愉快的一天我找到了一个详细说明: 。。。bind()用于将套接字与服务器地址关联 调用listen()将套接字置于服务器模式,accept()等待传入连接 listen()是服务器套接字与客户端的区别 调用bin

我已经学会了如何编写python服务器,并且发现我的知识中有一个漏洞。 因此,我很高兴了解更多关于socket模块的命令
bind()
listen()
之间的区别

此外,当我使用带有特定端口的
bind()
作为参数时,在使用
listen()
方法之前,特定端口是否已经在使用中

谢谢,祝你度过愉快的一天

我找到了一个详细说明:

。。。bind()用于将套接字与服务器地址关联

调用listen()将套接字置于服务器模式,accept()等待传入连接

listen()
是服务器套接字与客户端的区别


调用
bind()
后,端口现在被保留,并且在程序结束或在套接字上调用
close()
方法之前不能再次使用

证明这一点的测试程序如下所示:

import socket
import time

HOST = '127.0.0.1'
PORT = 65432

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
while 1:
    time.sleep(1)
同时运行此程序的两个实例时,您可以看到最后启动的实例出现错误:


这证明在调用
listen()!本教程确实提高了我的理解,但我还不知道绑定ip+端口时是否使用了特定的端口。我更新了答案,提供了有关bind()如何保留端口的更多信息