PySimpleGUI创建socket客户端文件发送窗口
时间: 2023-09-16 13:14:52 浏览: 71
socket(C#)
3星 · 编辑精心推荐
以下是使用PySimpleGUI创建socket客户端文件发送窗口的示例代码:
```python
import PySimpleGUI as sg
import socket
import os
# 定义窗口布局
layout = [
[sg.Text('文件路径: '), sg.Input(key='file_path'), sg.FileBrowse()],
[sg.Text('服务器地址: '), sg.Input(key='server_address')],
[sg.Text('服务器端口: '), sg.Input(key='server_port')],
[sg.Button('发送文件'), sg.Button('取消')]
]
# 创建窗口
window = sg.Window('文件发送器', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED or event == '取消':
break
if event == '发送文件':
# 获取文件路径、服务器地址和端口号
file_path = values['file_path']
server_address = values['server_address']
server_port = int(values['server_port'])
# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((server_address, server_port))
# 发送文件名和文件大小
file_name = os.path.basename(file_path)
file_size = os.path.getsize(file_path)
client_socket.send(f'{file_name} {file_size}'.encode())
# 发送文件内容
with open(file_path, 'rb') as f:
while True:
data = f.read(1024)
if not data:
break
client_socket.sendall(data)
# 关闭套接字
client_socket.close()
# 显示消息框
sg.popup('文件发送成功!')
```
这个程序创建了一个简单的窗口,用户可以在窗口中选择要发送的文件以及服务器的地址和端口号。当用户点击“发送文件”按钮时,程序会连接服务器并发送文件内容。发送完成后,程序会显示一个消息框提示用户文件已成功发送。
阅读全文