首頁 > 後端開發 > Python教學 > python Socket之客戶端與服務端握手詳細介紹

python Socket之客戶端與服務端握手詳細介紹

巴扎黑
發布: 2017-09-21 10:55:13
原創
1664 人瀏覽過

這篇文章主要為大家詳細介紹了python Socket之客戶端和服務端握手,具有一定的參考價值,感興趣的小伙伴們可以參考一下

簡單的學習下利用socket來建立客戶端和服務端之間的連線並且傳送資料

1. 客戶端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 socketClient.py

socket連線截圖如下

以上是python Socket之客戶端與服務端握手詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板