45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
import sys
|
|
from PySide6.QtCore import QCoreApplication, QByteArray
|
|
from PySide6.QtNetwork import QTcpSocket
|
|
from PySide6.QtCore import Signal, Slot
|
|
|
|
|
|
class SocketClient(QCoreApplication):
|
|
def __init__(self, host, port):
|
|
super().__init__(sys.argv)
|
|
|
|
# 创建一个 TCP Socket 对象
|
|
self.socket = QTcpSocket(self)
|
|
self.host = host
|
|
self.port = port
|
|
|
|
# 连接信号
|
|
self.socket.connected.connect(self.on_connected)
|
|
self.socket.readyRead.connect(self.on_ready_read)
|
|
self.socket.disconnected.connect(self.on_disconnected)
|
|
|
|
# 连接到服务器
|
|
self.socket.connectToHost(self.host, self.port)
|
|
|
|
@Slot()
|
|
def on_connected(self):
|
|
print(f"Connected to {self.host}:{self.port}")
|
|
self.socket.write(b"Hello, Server!") # 向服务器发送数据
|
|
print("Message sent to server.")
|
|
|
|
@Slot()
|
|
def on_ready_read(self):
|
|
data = self.socket.readAll() # 读取服务器发送的数据
|
|
print(f"Received from server: {data.data().decode()}")
|
|
|
|
@Slot()
|
|
def on_disconnected(self):
|
|
print("Disconnected from server.")
|
|
self.socket.close() # 关闭连接
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app = SocketClient("127.0.0.1", 1234)
|
|
sys.exit(app.exec())
|