Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für einen Handshake zwischen Client und Server von Socket in Python

Beispiel für einen Handshake zwischen Client und Server von Socket in Python

黄舟
黄舟Original
2017-09-18 11:36:021955Durchsuche

In diesem Artikel werden hauptsächlich die Client- und Server-Handshakes von Python Socket vorgestellt. Interessierte Freunde können sich auf

Eine einfache Möglichkeit beziehen, wie man eine Verbindung zwischen dem herstellt Client und Server und senden Sie Daten

1. Client-SocketClient.py-Code


import socket 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 建立连接: 
s.connect(('127.0.0.1', 9999)) 
# 接收欢迎消息: 
print(s.recv(1024).decode('utf-8')) 
for data in [b'Michael', b'Tracy', b'Sarah']: 
 # 发送数据: 
 s.send(data) 
 print(s.recv(1024).decode('utf-8')) 
s.send(b'exit') 
s.close()

2 >


3. Betriebsprozess
import socket 
import threading 
import time 
# from threading import Thread 
 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 监听端口: 
s.bind(('127.0.0.1', 9999)) 
s.listen(5) 
print('Waiting for connection...') 
 
def tcplink(sock, addr): 
 print('Accept new connection from %s:%s...' % addr) 
 sock.send(b'Welcome!') 
 while True: 
  data = sock.recv(1024) 
  time.sleep(1) 
  if not data or data.decode('utf-8') == 'exit': 
   break 
  sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8')) 
 sock.close() 
 print('Connection from %s:%s closed.' % addr) 
 
while True: 
 # 接受一个新连接: 
 sock, addr = s.accept() 
 # 创建新线程来处理TCP连接: 
 t = threading.Thread(target=tcplink, args=(sock, addr)) 
 t.start()

Öffnen Sie zwei Konsolenfenster, führen Sie zuerst den Server python3 serverSocket.py aus

Führen Sie dann den Client python3 socketClient.py aus

Der Screenshot der Socket-Verbindung sieht wie folgt aus

Das obige ist der detaillierte Inhalt vonBeispiel für einen Handshake zwischen Client und Server von Socket in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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