本文实例为大家分享了Python聊天室程序的具体代码,供大家参考,具体内容如下
客户端代码:
#文件名:socketClient.py 进口套接字 导入系统 进口线程 #客户端GUI 从tkinter进口* 进口麻省理工 #创建一个TCP/IP套接字 袜子=socket.socket(插座。AF_INET socket.SOCK_STREAM) #将套接字连接到服务器正在监听的端口 server_address=(' localhost ', 10000) 打印(sys。stderr,连接到%年代端口% s % server_address) sock.connect (server_address) 根=Tk () # textDisplay textDisplay=Pmw.ScrolledText(根) textDisplay。包(扩大=1,padx=5, pady=5,一边=左) # textInput textInput=Pmw.ScrolledText(根) textInput。包(扩大=1,padx=5, pady=5,一边=左) #发送按钮和回调 def sendMsg(事件): 消息=socket.gethostname () + ': ' + textInput.get () #打印(sys。stderr,发送“% s”的消息) 打印(消息) sock.sendall (message.encode ()) textInput.clear () #数据=https://www.yisu.com/zixun/sock.recv (100) # textDisplay。插入(最终数据) #打印(sys。stderr,”收到“% s”“%数据) sendBtn=(根、文本=胺⑺汀?按钮 sendBtn.bind (“& lt; Button-1>”, sendMsg) sendBtn。包(左端=) def receiveMsg (): 而真正的: data=https://www.yisu.com/zixun/sock.recv (100) 打印(sys。stderr,客户收到“% s”%数据) textDisplay。插入(最终数据) receiveThread=线程。线程(name=' waitForMSG、目标=receiveMsg) receiveThread.start () root.mainloop () >之前,服务器端代码:
#文件名:socketServer.py 进口套接字 导入系统 #创建一个TCP/IP套接字 袜子=socket.socket(插座。AF_INET socket.SOCK_STREAM) #将套接字绑定到端口 server_address=(' localhost ', 10000) 打印(sys。stderr, ' % s端口上启动% s % server_address) sock.bind (server_address) #侦听传入的连接 sock.listen (1) 而真正的: #等待连接 打印(sys。stderr,等待连接) 连接,client_address=sock.accept () 试一试: 打印(sys。“连接”,client_address stderr) #接收小块中的数据并重新发送它 而真正的: data=https://www.yisu.com/zixun/connection.recv (16) 打印(sys。stderr,”收到“% s”“%数据) 如果数据: 打印(sys。stderr,将数据发送回客户机) connection.sendall(数据) 其他: 打印(sys。stderr,没有数据,client_address) 打破 最后: #清理连接 connection.close ()客户端在监听服务器的消息采用了多线程的方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Python聊天室程序(基础版)