Python基礎 38 Socket 程式設計二

2021-09-22 19:33:26 字數 1522 閱讀 7944

前一篇可以實現兩端的通訊,但是只通訊一次就結束了。本篇來優化一下,實現兩端通訊,我們需要停止通訊的時候再結束「對話」。

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 建立乙個列表儲存...