我已经学会了如何编写 python 服务器,并发现我的知识有一个漏洞。因此,我很高兴了解更多有关套接字模块的命令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)
Run Code Online (Sandbox Code Playgroud)
当同时运行该程序的两个实例时,您可以看到最后启动的一个出现错误:

这证明该端口在listen()被调用之前就已被保留。
| 归档时间: |
|
| 查看次数: |
7737 次 |
| 最近记录: |