本文实例为大家分享了python聊天室程序的具体代码,供大家参考,具体内容如下
客户端代码:
# filename: socketclient.py import socket import sys import threading # client gui from tkinter import * import pmw # create a tcp/ip socket sock = socket.socket(socket.af_inet, socket.sock_stream) # connect the socket to the port where the server is listening server_address = ('localhost', 10000) print (sys.stderr, 'connecting to %s port %s' % server_address) sock.connect(server_address) root = tk() # textdisplay textdisplay = pmw.scrolledtext(root) textdisplay.pack(expand=1, padx=5, pady=5,side = left) # textinput textinput = pmw.scrolledtext(root) textinput.pack(expand=1, padx=5, pady=5,side = left) # send button and its callback def sendmsg(event): message = socket.gethostname()+':'+ textinput.get() #print (sys.stderr, 'sending "%s"' % message) print(message) sock.sendall(message.encode()) textinput.clear() #data = sock.recv(100) #textdisplay.insert(end, data) #print (sys.stderr, 'received "%s"' % data) sendbtn = button(root, text="send") sendbtn.bind('<button-1>', sendmsg) sendbtn.pack(side = left) def receivemsg(): while true: data = sock.recv(100) print (sys.stderr, 'client received "%s"' % data) textdisplay.insert(end, data) receivethread = threading.thread(name='waitformsg', target=receivemsg) receivethread.start() root.mainloop()
服务器端代码:
# filename: socketserver.py import socket import sys # create a tcp/ip socket sock = socket.socket(socket.af_inet, socket.sock_stream) # bind the socket to the port server_address = ('localhost', 10000) print (sys.stderr, 'starting up on %s port %s' % server_address) sock.bind(server_address) # listen for incoming connections sock.listen(1) while true: # wait for a connection print (sys.stderr, 'waiting for a connection') connection, client_address = sock.accept() try: print (sys.stderr, 'connection from', client_address) # receive the data in small chunks and retransmit it while true: data = connection.recv(16) print (sys.stderr, 'received "%s"' % data) if data: print (sys.stderr, 'sending data back to the client') connection.sendall(data) else: print (sys.stderr, 'no data from', client_address) break finally: # clean up the connection connection.close()
相关推荐:
python程序中的观察者模式结构编写
以上就是python聊天室程序(基础版)_python的详细内容。