如何重置python中使用的套接字地址?(解决WinError 10048)

用户10620375

在创建了一个小 pygame 程序之后,我希望让它对多人游戏友好,并且可以在本地玩。我的目标是让我的世界里有两个独立的玩家!

所以,我基本上尝试学习如何使用python的socket模块。

好的,让我们进去,我的第一次尝试是在基本服务器上连接客户端。

我遵循一个非常好的教程并获得基于此结构的最终代码:

#server.py

import socket
from threading import Thread

class Serv(Thread):


    def __init__(self, conn):
        Thread.__init__(self)
        self.conn = conn

    def run(self):
        data = self.conn.recv(1024)
        data = data.decode("utf8")
        print(data)


host, port = ('', 8486)

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind((host, port))

run = True

while run :
    socket.listen(5)
    conn, adress = socket.accept()

    thread_serv = Serv(conn)
    thread_serv.start()
conn.close()
socket.close()

和 :

#client.py

import socket

host, port = ('localhost', 8486)



try:
    socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    socket.connect((host, port))
    print("You're in !")

    data = "bonjour"
    data = data.encode("utf8")
    socket.sendall(data)

except ConnectionRefusedError:
    print("There is no server to join !")
except :
    print("connexion lost...")
finally:
    socket.close()

我第一次运行这两个程序(先是 server.py ,然后是 client.py ),一切正常。

但是当我第二次运行它时,控制台返回给我:

Traceback (most recent call last):
  File "C:\Users\Cédric\Documents\logiciels\python\By Edhyjox\Tower\bin\serveur.py", line 20, in <module>
    socket.bind((host, port))
OSError: [WinError 10048] Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est habituellement autorisée
[Finished in 0.1s]

如果我给你翻译最后一行,它会处理这样的事情: Only one use of each socket address ( protocol/network address/port) is usually allowed

我知道它来自端口,因为当我更改它时,它会再次工作,直到我不使用同一个端口两次。

但是有没有办法重置所有使用的端口并使其再次可用?

塞尔吉·巴列斯塔

您的代码尝试listen多次调用这是错误的。listen预计被调用一次,只需accept为每个新连接调用。你的代码应该是:

...
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind((host, port))
socket.listen(5)

run = True

while run :
    conn, adress = socket.accept()

    thread_serv = Serv(conn)
    thread_serv.start()
conn.close()
socket.close()

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python Server Client程序错误:“ OSError:[WinError 10048]”

来自分类Dev

尝试通过Bacpypes从网络再次读取时出现Errno 10048

来自分类Dev

Apache不会绑定到任何端口(OS 10048)

来自分类Dev

Python套接字[WinError 10057]?

来自分类Dev

如何在Python ssl套接字缓冲中使用select?

来自分类Dev

如何在Python中使用套接字创建通道

来自分类Dev

如何在Python中使用套接字创建通道

来自分类Dev

如何在Python和子进程中使用套接字?

来自分类Dev

错误:在原始套接字中使用sendto()时,地址错误

来自分类Dev

Python 套接字编程 - ConnectionRefusedError: [WinError 10061]

来自分类Dev

Python:在OSX中使用原始套接字

来自分类Dev

在tk命令中使用套接字函数时出现'WinError 10061'

来自分类Dev

如何向后发送返回地址(通过套接字)-Python

来自分类Dev

如何向后发送返回地址(通过套接字)-Python

来自分类Dev

Python套接字编程:异常后为“地址已在使用中”

来自分类Dev

Errno 98:地址已在使用中-Python套接字

来自分类Dev

使用python从维基百科访问数据时如何解决套接字错误

来自分类Dev

使用Linux套接字检测TCP重置

来自分类Dev

如何在Python中使用管道时关闭套接字连接

来自分类Dev

在Android中使用套接字?

来自分类Dev

如何使用其 IP 地址从 Web 浏览器连接到 python 套接字服务器?

来自分类Dev

Python套接字,MAC地址格式

来自分类Dev

Python套接字NAT端口地址

来自分类Dev

Python 3中套接字的子类中的WinError 10038

来自分类Dev

套接字EADDRINUSE(地址已在使用中)

来自分类Dev

套接字错误:地址已在使用中

来自分类Dev

获取进程使用的套接字的IP地址

来自分类Dev

如何配置phoenix以在PostgreSQL中使用套接字

来自分类Dev

如何在套接字中使用raw_input

Related 相关文章

  1. 1

    Python Server Client程序错误:“ OSError:[WinError 10048]”

  2. 2

    尝试通过Bacpypes从网络再次读取时出现Errno 10048

  3. 3

    Apache不会绑定到任何端口(OS 10048)

  4. 4

    Python套接字[WinError 10057]?

  5. 5

    如何在Python ssl套接字缓冲中使用select?

  6. 6

    如何在Python中使用套接字创建通道

  7. 7

    如何在Python中使用套接字创建通道

  8. 8

    如何在Python和子进程中使用套接字?

  9. 9

    错误:在原始套接字中使用sendto()时,地址错误

  10. 10

    Python 套接字编程 - ConnectionRefusedError: [WinError 10061]

  11. 11

    Python:在OSX中使用原始套接字

  12. 12

    在tk命令中使用套接字函数时出现'WinError 10061'

  13. 13

    如何向后发送返回地址(通过套接字)-Python

  14. 14

    如何向后发送返回地址(通过套接字)-Python

  15. 15

    Python套接字编程:异常后为“地址已在使用中”

  16. 16

    Errno 98:地址已在使用中-Python套接字

  17. 17

    使用python从维基百科访问数据时如何解决套接字错误

  18. 18

    使用Linux套接字检测TCP重置

  19. 19

    如何在Python中使用管道时关闭套接字连接

  20. 20

    在Android中使用套接字?

  21. 21

    如何使用其 IP 地址从 Web 浏览器连接到 python 套接字服务器?

  22. 22

    Python套接字,MAC地址格式

  23. 23

    Python套接字NAT端口地址

  24. 24

    Python 3中套接字的子类中的WinError 10038

  25. 25

    套接字EADDRINUSE(地址已在使用中)

  26. 26

    套接字错误:地址已在使用中

  27. 27

    获取进程使用的套接字的IP地址

  28. 28

    如何配置phoenix以在PostgreSQL中使用套接字

  29. 29

    如何在套接字中使用raw_input

热门标签

归档