Heim > Web-Frontend > js-Tutorial > Hauptteil

Python-Chatroom-Programm (Basisversion)_python

不言
Freigeben: 2018-04-02 16:01:03
Original
1344 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Basisversion des Python-Chatroom-Programms ausführlich vorgestellt, einschließlich der Client- und Serverteile. Interessierte Freunde können darauf verweisen.

Das Beispiel in diesem Artikel wird geteilt Spezifischer Code des Python-Chatroom-Programms als Referenz. Der spezifische Inhalt lautet wie folgt:

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()
Nach dem Login kopieren

Server- Nebencode:

# 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()
Nach dem Login kopieren

Verwandte Empfehlungen:

Beobachtermusterstruktur in Python-Programmen schreiben

Das obige ist der detaillierte Inhalt vonPython-Chatroom-Programm (Basisversion)_python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!