1 簡(jiǎn)易對(duì)講程序的需求對(duì)講機(jī)程序,就是雙方互相通話的過程,簡(jiǎn)單一點(diǎn)的邏輯就是雙方每次只能說一句話,然后等待對(duì)方回答之后繼續(xù)說話。2
對(duì)講機(jī)程序,就是雙方互相通話的過程,簡(jiǎn)單一點(diǎn)的邏輯就是雙方每次只能說一句話,然后等待對(duì)方回答之后繼續(xù)說話。
import socket
# 創(chuàng)建服務(wù)端套接字對(duì)象
service = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 綁定主機(jī)和端口號(hào)
service.bind(("", 8888))
# 啟動(dòng)監(jiān)聽
service.listen(1)
# 接收客戶端連接
print("服務(wù)端程序啟動(dòng)成功,等待客戶端接入.....")
conn, addr = service.accept()
print("客戶端已經(jīng)接入,可以進(jìn)行通信" + 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("請(qǐng)輸入要發(fā)送給客戶端的消息:")
info = info.encode("utf-8")
conn.sendall(info)
# 關(guān)閉該客戶端的連接
conn.close()
import socket
# 創(chuàng)建客戶端套接字對(duì)象
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("請(qǐng)輸入要發(fā)送的消息:")
info = info.encode("utf-8")
client.sendall(info)
#關(guān)閉客戶端套接字對(duì)象
client.close()
首先運(yùn)行服務(wù)端程序
運(yùn)行客戶端程序
開始互相發(fā)送消息
服務(wù)端
客戶端
整體效果如上所述,對(duì)于TCP網(wǎng)絡(luò)編程的部分內(nèi)容都有涉及,大家在獨(dú)立完成的基礎(chǔ)上,可以思考一個(gè)問題:怎么退出對(duì)話?!
>>>更多VR/AR入門教程:VR入門
Python交流群
635448130點(diǎn)擊加入群聊UI設(shè)計(jì)交流群
579150876點(diǎn)擊加入群聊Unity交流群
495609038點(diǎn)擊加入群聊HTML5交流群
645591648點(diǎn)擊加入群聊