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))
我创建了一个函数来建立与服务器的 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))