如何检查我是否连接到服务器? Python 套接字

How do I check if I connected to the server? Python Sockets

我还没有测试过,但是如果不执行连接,最后这句话会被打印出来吗?

def connect_to():
    print(f"[*] Connecting to {receiver_ip}:{receiver_port}")
    socket.connect((receiver_ip, receiver_port))
    print(f"[+] Connected")

如何检查我是否正确连接并做出正确的 if 语句?

使用 try except 来捕捉错误,如果连接成功

当套接字连接失败时,会引发socket.error异常。您可以使用 Python.

中的某些 error handling techniques 捕获该特定错误
import socket


def connect(ip, port):
    s = socket.socket()

    try:
        print(f"Connecting to {ip}:{port}")
        s.connect((ip, port))
    except socket.error as msg:
        print(f"Failed to connect: {msg}")
    else:
        print(f"Successfully connected to {ip}:{port}")

How can I check if I connected properly and make a proper if statement?

如果在 try 块中捕获到指定的错误,将执行 except 块。另一方面,else 块将在没有引发或处理错误时执行。您可以将 except 块视为“if error”,将 else 块视为“if not error”。

或者,您可以捕获错误并使用自定义消息重新引发错误。

import socket


def connect(ip, port):
    s = socket.socket()

    try:
        print(f"Connecting to {ip}:{port}")
        s.connect((ip, port))
    except socket.error as msg:
        raise socket.error(f"Failed to connect: {msg}")

    print(f"Successfully connected to {ip}:{port}")

通过抓牌和再加注,您不必再使用 else 块。