前一篇可以實現兩端的通訊,但是只通訊一次就結束了。本篇來優化一下,實現兩端通訊,我們需要停止通訊的時候再結束「對話」。
server端
# coding:utf-8
import socket
sock = socket.socket(socket.af_inet,socket.sock_stream)
sock.bind(("",8000))
sock.listen(5)
while true: # 迴圈接收
"""服務端只有自己傳送break才會關閉連線,否則會一直迴圈等待接收資訊
"""b = false
content,address = sock.accept()
while true:
recv = content.recv(512).decode()
print(recv)
if recv == "break":
break
senddata = input(">>>")
content.send(senddata.encode())
if senddata == "break":
b = true
break
if b:
break
sock.close()
client端
# coding:utf-8
import socket
sock = socket.socket(socket.af_inet,socket.sock_stream)
sock.connect(("127.0.0.1",8000))
while true:
"""客戶端傳送或接收到break時,都會關閉連線
"""senddata = input(">>>")
sock.send(senddata.encode())
if senddata == "break":
break
recv = sock.recv(512).decode()
print(recv)
if recv == "break":
break
sock.close()
1)兩端連線後,正常傳送資訊
2)當客戶端傳送break的時候,客戶端連線中斷,服務端繼續等待接收。客戶端重新啟動繼續傳送,服務端繼續接收到資訊
3)當服務端傳送break的時候,兩端通訊結束
python 網路程式設計學習 套接字socket
以前也學過套接字程式設計,這次想系統全面的學習下python網路程式設計的使用。做這個,為檢測進度,也為後續留下筆記和足跡。socket 常用函式 socket.gethostname socket.gethostbyname import socket host socket.gethostnam...
Python網路程式設計學習筆記一 socket模組
coding utf 8 主要測試python網路程式設計中socket模組的使用 涉及到的技術點 套接字 面向連線的還有非面向連線套接字 tcp面向連線 udp非面向連線 1 匯入socket 2 建立socket socket三要素 1 socket family,2 socket type 3...
Python之非同步IO模型實現socket併發
服務端 import socket sk socket.socket addr 127.0.0.1 8090 sk.bind addr sk.listen sk.setblocking false 設定非阻塞模式,accept,recv等方法均不阻塞,而是丟擲異常 conn lst 建立乙個列表儲存...