首页 > 解决方案 > Python套接字如何关闭命令行连接

问题描述

我在 python 中玩套接字,但我找不到在命令行中关闭“服务器”连接的方法。ctrl+c, ctrl+z 不工作。

我的 server.py 文件:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 1235))
s.listen(5)

while True:
  clientsocket, address = s.accept()
  print(f"connection from {address} has been established!")
  clientsocket.send(bytes("Welcome to the server!", "utf-8"))
  clientsocket.close()

如果我对此文件进行更新,我必须关闭终端并重新运行脚本。我必须更改端口号,因为原始端口一直被占用。教程中的人必须做同样的事情,但我无法想象这是最好的做事方式。是否有命令可以关闭连接、清除端口等,让我重新启动脚本?

标签: pythonsocketsnetworking

解决方案


您也可以在下面尝试,看看它是否有效

要关闭服务器,请在关闭之前使用 shutdown :

def close():
    server.shutdown(socket.SHUT_RDWR)
    server.close()

为了重用地址,请在绑定套接字之前使用以下内容:

server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

推荐阅读