繁体   English   中英

如何检查我是否连接到服务器? 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 中的一些错误处理技术来捕获该特定错误。

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}")

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

如果在 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块了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM