Python を使用してネットワーク プログラミングを開始し、基本的なピア ツー ピア チャット クライアント サーバー アプリケーションに取り組んでいます。コンソールで動作するようになりましたが、GUI の開発中に問題に直面しています。
これは、クライアント スクリプトのコードです。サーバーにデータを送信していますが、サーバーから送信されたデータを受信/表示できず、途方に暮れています。私のコードと解決策のエラーを表示してください。
from socket import *
from tkinter import *
host="127.0.0.1"
port=1420
buffer=1024
server=(host,port)
clientsock=socket(AF_INET,SOCK_STREAM)
clientsock.connect(server)
class ipbcc(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.grid()
self.create()
self.connect()
def write(self,event):
msg=self.e.get()
clientsock.send(msg.encode())
def create(self):
self.pic=PhotoImage(file="logo.gif")
self.label=Label(self,image=self.pic)
self.label.grid(column=0)
self.wall=Text(self,width=70,height=20,wrap=WORD)
self.wall.grid(row = 0, column = 1, columnspan = 2, sticky = W)
self.e=Entry(self,width=50)
self.e.grid(row = 1, column = 1, sticky = W)
self.e.bind('<Return>',self.write)
def add(self,data):
self.wall.insert(END,data)
def connect(self):
def xloop():
while 1:
data=clientsock.recv(buffer).decode()
print(data)
self.add(data)
root=Tk()
root.title("IPBCC v0.1")
app=ipbcc(root)
root.mainloop()
PS: Python バージョン 3.3 で、サーバー スクリプトに問題はありません。