新聞中心
1、搭建流程

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),海原企業(yè)網(wǎng)站建設(shè),海原品牌網(wǎng)站建設(shè),網(wǎng)站定制,海原網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,海原網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
(1)首先創(chuàng)建一個(gè)套接字,TCP是一個(gè)面向流的套接字。所以需要使用SOCK_STREAM。
(2)然后使用bind()函數(shù)將套接字與服務(wù)器地址相關(guān)聯(lián)(因?yàn)槲覀冎皇窃诒镜販y試,直接將地址設(shè)置為127.0.0.1或localhost,端口號(hào)為10000)。當(dāng)然,如果你周圍有兩臺(tái)計(jì)算機(jī)設(shè)備,你可以直接更換局域網(wǎng)的IP地址。
(3)調(diào)用listen()函數(shù)將套接字設(shè)置為服務(wù)器模式,然后循環(huán)等待,參數(shù)為排隊(duì)次數(shù)。
在循環(huán)中,調(diào)用accept()等待客戶端的信息連接。如果客戶端連接,accept()函數(shù)將返回打開的連接和客戶端地址。
(4)指示緩沖區(qū),用于存儲(chǔ)recv函數(shù)收到的數(shù)據(jù)。
(5)使用sendall()返回客戶端數(shù)據(jù)。返回?cái)?shù)據(jù)后,即使與當(dāng)前客戶端通信完成。需要使用close()關(guān)閉清理。
2、實(shí)例
import socket
# 1.創(chuàng)建一個(gè)套接字,
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.使用bind()函數(shù)將套接字與服務(wù)器地址關(guān)聯(lián)
sock.bind(('localhost', 10000))
# 3.調(diào)用listen()函數(shù)將套接字設(shè)置為服務(wù)器模式
sock.listen(1)
while True:
# 4.調(diào)用accept()等待客戶端的消息連接
# 如果有客戶端進(jìn)行連接,那么accept()函數(shù)會(huì)返回一個(gè)打開的連接與客戶端地址
connection, client_address = sock.accept()
print("連接客戶端地址:", client_address)
try:
# 5.指明一個(gè)緩沖區(qū),該緩沖區(qū)用來存放recv函數(shù)接收到的數(shù)據(jù)
data = connection.recv(1024)
print(data)
if data:
# 6.通過sendall()進(jìn)行回傳客戶端數(shù)據(jù)。
connection.sendall("已接受到數(shù)據(jù)".encode())
else:
print("客戶端沒有發(fā)送數(shù)據(jù),不需要傳送數(shù)據(jù)")
finally:
#7.需要使用close()進(jìn)行關(guān)閉清理
connection.close()以上就是python中單向通信TCP服務(wù)器的搭建,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程
本文名稱:創(chuàng)新互聯(lián)Python教程:python中單向通信TCP服務(wù)器的搭建
分享URL:http://fisionsoft.com.cn/article/coccehp.html


咨詢
建站咨詢
