PySimpleGUI创建socket客户端创建文件
时间: 2023-09-17 22:07:53 浏览: 48
以下是使用PySimpleGUI创建socket客户端并创建文件的示例代码:
```python
import os
import PySimpleGUI as sg
import socket
# 创建GUI界面
layout = [[sg.Text('Enter the IP address of the server:'), sg.InputText()],
[sg.Text('Enter the port number of the server:'), sg.InputText()],
[sg.Text('Enter the file name to be created:'), sg.InputText()],
[sg.Button('Connect'), sg.Button('Exit')]]
window = sg.Window('Socket Client', layout)
# 创建socket客户端并连接到服务器
def create_socket(ip_addr, port):
try:
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((ip_addr, int(port)))
return client_socket
except:
sg.Popup('Error', 'Connection failed. Please check the IP address and port number.')
return None
# 创建文件并接收数据
def receive_data(client_socket, filename):
try:
with open(filename, 'wb') as f:
while True:
data = client_socket.recv(1024)
if not data:
break
f.write(data)
sg.Popup('Success', f'The file "{filename}" has been created successfully.')
except:
sg.Popup('Error', 'Failed to create the file. Please try again.')
# 主循环
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Exit':
break
elif event == 'Connect':
ip_addr = values[0]
port = values[1]
filename = values[2]
# 创建socket客户端并连接到服务器
client_socket = create_socket(ip_addr, port)
if client_socket:
# 发送文件名到服务器
client_socket.sendall(filename.encode())
# 接收数据并创建文件
receive_data(client_socket, filename)
# 关闭socket连接
client_socket.close()
window.close()
```
在这个示例中,我们首先创建了一个简单的GUI界面,要求用户输入服务器的IP地址、端口号和要创建的文件名。当用户单击“Connect”按钮时,程序将创建一个socket客户端并连接到服务器。然后,程序将发送要创建的文件名到服务器,并在接收到数据时创建文件。最后,程序将关闭socket连接并弹出一个消息框,告诉用户文件创建是否成功。