Как преодолеть событие нажатия кнопки, которое будет выполнять, чтобы получить файл с сервера - PullRequest
0 голосов
/ 06 ноября 2019

Когда я нажимаю кнопку, он подключается к моему серверу, чтобы получить файл, но после получения файла веб-страница не отвечает?

from socket import *
from tkinter import *
import re
import tkinter.messagebox
from tkinter import filedialog

def file(): 
       s = socket(AF_INET,SOCK_DGRAM)
       host ="192.168.2.199"
       port = 9999
       buf =4096
       addr = (host,port)

       file_name="csr"
       ip = re.compile('(([2][5][0-5]\.)|([2][0-4][0-9]\.)|([0-1]?[0-9]?[0-9]\.)){3}'
                +'(([2][5][0-5])|([2][0-4][0-9])|([0-1]?[0-9]?[0-9]))')
       s.connect(addr)
       s.send(file_name.encode())
       data,addr = s.recvfrom(buf)
       f = open(data.strip(),'wb')
       print("File Opened")
       data,addr = s.recvfrom(buf)
       while True:
           print('receiving data...')
           data = s.recv(1024)
           print('data=%s', (data))
           if not data:         
               break
           # write data to a file
           f.write(data)


       f.close()
       print('Successfully get the file')
       s.close()
       print('connection closed')
window=Tk()
window.geometry('100x100')
Button(window,text=" \t getfile\t ",command=file).pack()

window.mainloop()

Я уже пробовал этот код, но каждый раз, когда это не так

Когда событие нажатия кнопки будет выполнено, оно перейдет к функции, которая получает файл csv с сервера. Когда файл получен, веб-страница не отвечает, и я должен закрыть это и снова открыть его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...