Python 使用套接字作为全局变量

Python Use Socket as Global Variable

我创建了一个函数来建立与服务器的 TCP/IP 套接字连接。现在我想在我的应用程序中为其他任务重用套接字。这样我就有了:

import socket

def creat_tcp_connection():
    sock_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock_tcp.connect(("163.173.96.12", 32000))
    return sock_tcp

if __name__ == "__main__":
    creat_tcp_connection()
    texte = "PING\n"
    creat_tcp_connection.sock_tcp.send(texte.encode('utf-8'))
    data=creat_tcp_connection.sock_tcp.recv(1024).decode('utf-8')
    print("Received ", str(data))

但是“AttributeError:'function' 对象没有属性 'sock_tcp'”。 socket怎么用 sock_tcp 在 creat_tcp_connection() 函数中

非常感谢!

您正在尝试访问函数的属性,而不是函数的 return 值。试试这个:

import socket

def creat_tcp_connection():
    sock_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock_tcp.connect(("163.173.96.12", 32000))
    return sock_tcp

if __name__ == "__main__":
    sock = creat_tcp_connection()
    texte = "PING\n"
    sock.send(texte.encode('utf-8'))
    data=sock.recv(1024).decode('utf-8')
    print("Received ", str(data))