ホームページ >バックエンド開発 >Python チュートリアル >Python ソケットクライアントとサーバーハンドシェイクの詳細な紹介

Python ソケットクライアントとサーバーハンドシェイクの詳細な紹介

巴扎黑
巴扎黑オリジナル
2017-09-21 10:55:131689ブラウズ

この記事では、主に Python ソケットのクライアントとサーバーのハンドシェイクについて詳しく紹介します。興味のある方は参考にしてください。

クライアントとサーバーの接続を確立してデータを送信する方法を簡単に学習します。クライアントのsocketClient.pyコード

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.サーバーserverSocket.pyコード

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()

3.操作プロセス

最初にサーバーpython3のserverSocket.py

を実行しますpython3ソケットClient.py

ソケット接続のスクリーンショットは次のとおりです

以上がPython ソケットクライアントとサーバーハンドシェイクの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。