1 簡易對講程序的需求對講機程序,就是雙方互相通話的過程,簡單一點的邏輯就是雙方每次只能說一句話,然后等待對方回答之后繼續(xù)說話。2
對講機程序,就是雙方互相通話的過程,簡單一點的邏輯就是雙方每次只能說一句話,然后等待對方回答之后繼續(xù)說話。
import socket
# 創(chuàng)建服務(wù)端套接字對象
service = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 綁定主機和端口號
service.bind(("", 8888))
# 啟動監(jiān)聽
service.listen(1)
# 接收客戶端連接
print("服務(wù)端程序啟動成功,等待客戶端接入.....")
conn, addr = service.accept()
print("客戶端已經(jīng)接入,可以進行通信" + str(addr) + ";等待客戶端發(fā)送消息...")
# 發(fā)送歡迎消息
conn.sendall("天王蓋地虎,寶塔鎮(zhèn)河妖".encode("utf-8"))
# 循環(huán)讀取消息
while True:
# 接收并打印客戶端發(fā)送消息
msg = conn.recv(1024)
msg = msg.decode("utf-8")
print("客戶端:" + msg)
# 如果客戶端發(fā)送bye字符串,跳出循環(huán)
if msg == "bye":
service.sendall("over!")
break;
# 向客戶端發(fā)送消息
info = input("請輸入要發(fā)送給客戶端的消息:")
info = info.encode("utf-8")
conn.sendall(info)
# 關(guān)閉該客戶端的連接
conn.close()
import socket
# 創(chuàng)建客戶端套接字對象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 連接服務(wù)器
client.connect(("192.168.10.115", 8888))
# 循環(huán)處理發(fā)送消息
while True:
# 接收服務(wù)器的消息
msg = client.recv(1024)
msg = msg.decode("utf-8")
print("服務(wù)器:" + msg)
# 如果一旦接收到over!字符串,跳出循環(huán)
if msg=="over!":
print("程序退出")
break;
# 給服務(wù)器發(fā)送消息
info = input("請輸入要發(fā)送的消息:")
info = info.encode("utf-8")
client.sendall(info)
#關(guān)閉客戶端套接字對象
client.close()
首先運行服務(wù)端程序
運行客戶端程序
開始互相發(fā)送消息
服務(wù)端
客戶端
整體效果如上所述,對于TCP網(wǎng)絡(luò)編程的部分內(nèi)容都有涉及,大家在獨立完成的基礎(chǔ)上,可以思考一個問題:怎么退出對話?!
>>>更多VR/AR入門教程:VR入門