2023-07-05 17:15:46 +08:00
|
|
|
import socket
|
|
|
|
|
import struct
|
|
|
|
|
import json
|
|
|
|
|
import os
|
|
|
|
|
import PySimpleGUI as sg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def recvdata(conn, filepath):
|
|
|
|
|
header_size = struct.unpack('i', conn.recv(4))[0]
|
|
|
|
|
header_bytes = conn.recv(header_size)
|
|
|
|
|
header_json = header_bytes.decode('utf-8')
|
|
|
|
|
header_dic = json.loads(header_json)
|
|
|
|
|
content_len = header_dic['contentlen']
|
|
|
|
|
content_name = header_dic['contentname']
|
|
|
|
|
recv_len = 0
|
|
|
|
|
pdf = os.path.join(filepath, content_name)
|
|
|
|
|
with open(pdf, 'wb') as file:
|
|
|
|
|
while recv_len < content_len:
|
|
|
|
|
correntrecv = conn.recv(1024 * 1000)
|
|
|
|
|
file.write(correntrecv)
|
|
|
|
|
recv_len += len(correntrecv)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def senddata(conn, path, select_type):
|
|
|
|
|
name = os.path.basename(os.path.realpath(path))
|
|
|
|
|
try:
|
|
|
|
|
with open(path, 'rb') as file:
|
|
|
|
|
content = file.read()
|
|
|
|
|
headerdic = dict(
|
|
|
|
|
contentlen=len(content),
|
|
|
|
|
contentname=name,
|
|
|
|
|
select_type=select_type
|
|
|
|
|
)
|
|
|
|
|
headerjson = json.dumps(headerdic)
|
|
|
|
|
headerbytes = headerjson.encode('utf-8')
|
|
|
|
|
headersize = len(headerbytes)
|
|
|
|
|
conn.send(struct.pack('i', headersize))
|
|
|
|
|
conn.send(headerbytes)
|
|
|
|
|
conn.sendall(content)
|
|
|
|
|
except ConnectionResetError:
|
|
|
|
|
print('不存在这个文件!')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def connect():
|
|
|
|
|
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
|
dest_ip = '192.168.11.121'
|
2024-01-02 13:53:43 +08:00
|
|
|
dest_port = int(8191)
|
2023-07-05 17:15:46 +08:00
|
|
|
client.connect((dest_ip, dest_port))
|
|
|
|
|
return client
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def transclient(sendfile, resfile, select_type):
|
|
|
|
|
conn = connect()
|
|
|
|
|
senddata(conn, sendfile, select_type)
|
|
|
|
|
recvdata(conn, resfile)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def make_gui():
|
|
|
|
|
while True:
|
|
|
|
|
layout = [
|
|
|
|
|
[sg.Text('选择排样程序')],
|
|
|
|
|
[sg.Radio('T7', 'layout', key='t7', default=True), sg.Radio('nova', 'layout', key='nova'),
|
|
|
|
|
sg.Radio('Xplus', 'layout', key='xplus')],
|
|
|
|
|
[
|
|
|
|
|
sg.Text('导入排样excel')],
|
|
|
|
|
[
|
|
|
|
|
sg.Input(key='_FILE1_'), sg.FileBrowse()],
|
|
|
|
|
[
|
|
|
|
|
sg.Text('生成排样位置')],
|
|
|
|
|
[
|
|
|
|
|
sg.Input(key='_FILE2_'), sg.FolderBrowse()],
|
|
|
|
|
[
|
|
|
|
|
sg.OK(), sg.Cancel()]]
|
|
|
|
|
window = sg.Window('解码排样测试程序', layout)
|
|
|
|
|
event, values = window.Read()
|
|
|
|
|
if event == 'OK':
|
|
|
|
|
if values['nova']:
|
|
|
|
|
select_type = 'nova'
|
|
|
|
|
elif values['xplus']:
|
|
|
|
|
select_type = 'xplus'
|
|
|
|
|
else:
|
|
|
|
|
select_type = 't7'
|
2024-01-02 13:53:43 +08:00
|
|
|
transclient(values['_FILE1_'], os.path.join(values['_FILE2_']), select_type)
|
2023-07-05 17:15:46 +08:00
|
|
|
sg.Popup('排样成功!')
|
|
|
|
|
else:
|
|
|
|
|
window.Close()
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
# respath = 'result'
|
|
|
|
|
# transclient(os.path.join('example', '0520_T7_1.xlsx'), respath)
|
|
|
|
|
make_gui()
|