(2018-04-12.Python從Zero到One)一、python高級編程__3.2.6tcp服務(wù)器

上一篇文章為:→3.2.5tcp相關(guān)介紹

tcp服務(wù)器

生活中的電話機(jī)

如果想讓別人能更夠打通咱們的電話獲取相應(yīng)服務(wù)的話,需要做一下幾件事情:

  1. 買個(gè)手機(jī)
  2. 插上手機(jī)卡
  3. 設(shè)計(jì)手機(jī)為正常接聽狀態(tài)(即能夠響鈴)
  4. 靜靜的等著別人撥打

tcp服務(wù)器

如同上面的電話機(jī)過程一樣,在程序中,如果想要完成一個(gè)tcp服務(wù)器的功能,需要的流程如下:

  1. socket創(chuàng)建一個(gè)套接字
  2. bind綁定ip和port
  3. listen使套接字變?yōu)榭梢员粍?dòng)鏈接
  4. accept等待客戶端的鏈接
  5. recv/send接收發(fā)送數(shù)據(jù)

一個(gè)很簡單的tcp服務(wù)器如下:

#coding=utf-8
from socket import *

# 創(chuàng)建socket
tcpSerSocket = socket(AF_INET, SOCK_STREAM)

# 綁定本地信息
address = ('', 7788)
tcpSerSocket.bind(address)

# 使用socket創(chuàng)建的套接字默認(rèn)的屬性是主動(dòng)的,使用listen將其變?yōu)楸粍?dòng)的,這樣就可以接收別人的鏈接了
tcpSerSocket.listen(5)

# 如果有新的客戶端來鏈接服務(wù)器,那么就產(chǎn)生一個(gè)新的套接字專門為這個(gè)客戶端服務(wù)器
# newSocket用來為這個(gè)客戶端服務(wù)
# tcpSerSocket就可以省下來專門等待其他新客戶端的鏈接
newSocket, clientAddr = tcpSerSocket.accept()

# 接收對方發(fā)送過來的數(shù)據(jù),最大接收1024個(gè)字節(jié)
recvData = newSocket.recv(1024)
print '接收到的數(shù)據(jù)為:',recvData

# 發(fā)送一些數(shù)據(jù)到客戶端
newSocket.send("thank you !")

# 關(guān)閉為這個(gè)客戶端服務(wù)的套接字,只要關(guān)閉了,就意味著為不能再為這個(gè)客戶端服務(wù)了,如果還需要服務(wù),只能再次重新連接
newSocket.close()

# 關(guān)閉監(jiān)聽套接字,只要這個(gè)套接字關(guān)閉了,就意味著整個(gè)程序不能再接收任何新的客戶端的連接
tcpSerSocket.close()

運(yùn)行流程:

<1>tcp服務(wù)器

day17_TFTP、TCP編程-00.png

<2>網(wǎng)絡(luò)調(diào)試助手:

day17_TFTP、TCP編程-01.jpg
day17_TFTP、TCP編程-02.png

下一篇文章為:→3.2.7tcp客戶端
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 3 socket模塊-TCP gitbook鏈接:用python帶你進(jìn)入AI中的深度學(xué)習(xí)技術(shù)領(lǐng)域https://w...
    scrappyzhang閱讀 1,283評論 0 2
  • 1.tcp相關(guān)介紹 udp通信模型中,在通信開始之前,不需要建立相關(guān)的鏈接,只需要發(fā)送數(shù)據(jù)即可,類似于生活中,"寫...
    TENG書閱讀 454評論 0 1
  • 本文翻譯自Socket Programming HOWTO 雖然套接字無處不在,但卻是被誤解最嚴(yán)重的技術(shù)之一。本文...
    大蟒傳奇閱讀 3,714評論 0 8
  • (458) 我愛你。
    韓尚小閱讀 287評論 1 1

友情鏈接更多精彩內(nèi)容