Home > Web Front-end > JS Tutorial > body text

Python chat room program (basic version)_python

不言
Release: 2018-04-02 16:01:03
Original
1309 people have browsed it

This article mainly introduces the basic version of the Python chat room program in detail, including the client and server parts. It has certain reference value. Interested friends can refer to it

The example in this article shares the specific code of the Python chat room program for your reference. The specific content is as follows

Client code:

# 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(&#39;<Button-1>&#39;, sendMsg)  
sendBtn.pack(side = LEFT) 
 
def receiveMsg(): 
  while True: 
    data = sock.recv(100) 
    print (sys.stderr, &#39;client received "%s"&#39; % data) 
    textDisplay.insert(END, data) 
   
 
receiveThread = threading.Thread(name=&#39;waitForMSG&#39;, target=receiveMsg) 
receiveThread.start() 
 
root.mainloop()
Copy after login

Server-side code:

# 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 = (&#39;localhost&#39;, 10000) 
print (sys.stderr, &#39;starting up on %s port %s&#39; % server_address) 
sock.bind(server_address) 
 
# Listen for incoming connections 
sock.listen(1) 
 
while True: 
  # Wait for a connection 
  print (sys.stderr, &#39;waiting for a connection&#39;) 
  connection, client_address = sock.accept() 
 
  try: 
    print (sys.stderr, &#39;connection from&#39;, client_address) 
 
    # Receive the data in small chunks and retransmit it 
    while True: 
      data = connection.recv(16) 
      print (sys.stderr, &#39;received "%s"&#39; % data) 
      if data: 
        print (sys.stderr, &#39;sending data back to the client&#39;) 
        connection.sendall(data) 
      else: 
        print (sys.stderr, &#39;no data from&#39;, client_address) 
        break 
  finally: 
    # Clean up the connection 
    connection.close()
Copy after login

Related recommendations:

Writing the Observer Pattern Structure in Python Programs

The above is the detailed content of Python chat room program (basic version)_python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!