欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶端通信

系統(tǒng) 1609 0

Python socket網(wǎng)絡(luò)編程

初學(xué) python,前段時間買了兩本書《python 編程從入門到實踐》《Python 核心編程第三版》,第一本書主要講的是一些基本語法和一些基本的使用方法,而第二本則深入很多,自己看來也是一知半解,剛好看到了這部分網(wǎng)絡(luò)編程,依然有好多不太理解的地方,不過想來通過自己不斷的摸索,不斷地搜尋資料學(xué)習(xí),早晚應(yīng)該會變得通透吧.......

這部分主要使用的模塊就是 socket 模塊,在這個模塊中可以找到 socket()函數(shù),該函數(shù)用于創(chuàng)建套接字對象,套接字也有自己的方法集,這些方法可以實現(xiàn)基于套接字的網(wǎng)絡(luò)通信。

socket()模塊函數(shù)

要創(chuàng)建套接字,必須使用 socket.socket()函數(shù),他一般的語法如下

            
socket(socket_family, socket_type, protocol=0)
          

其中socket_family是 AF_UNIX或 AF_INET,socket_type 是 SOCK_STREAM 或 SOCK_DGRAM,protocol 通常省略,默認(rèn)=0.

所以創(chuàng)建 TCP/IP 套接字,可以使用下面的方式調(diào)用 socket.socket().

            
tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
          

同樣創(chuàng)建 UDP/IP 套接字,使用下面的方法調(diào)用

            
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
          

創(chuàng)建 TCP 服務(wù)器

創(chuàng)建 TCP 服務(wù)器的流程基本如下,并非正真正的代碼

            
ss = socket()          #創(chuàng)建服務(wù)器套接字
    ss.bind()              #套接字與地址綁定
    ss.listen()             #監(jiān)聽連接
    inf_loop:             #服務(wù)器無限循環(huán)
        cs = ss.accepr()   #接受客戶端連接
        comm_loop:      #通信循環(huán)
            cs.recv()/cs.send()   #對話(接收/發(fā)送)
        cs.close()        #關(guān)閉客戶端套接字
    ss.close()            #關(guān)閉服務(wù)器套接字(可選)

          

實際中創(chuàng)建 TCP 服務(wù)器基本流程就如上邊所說,可能稍有不同但基本思路應(yīng)該是相通的,下邊是真正穿件服務(wù)器的代碼:

            
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from socket import *      #將 socket 屬性引入到命名空間

HOST = ''          #這是對 bind()方法的標(biāo)識表示可以使用任何可用的地址
PORT = 21571      #端口號
BUFSIZ = 1024     #緩沖區(qū)大小,1kb
ADDR = (HOST,PORT)   #地址????

tcpSerSocket = socket(AF_INET,SOCK_STREAM)    #創(chuàng)建 tcp 套接字
tcpSerSocket.bind(ADDR)           #將地址綁定到套接字上
tcpSerSocket.listen(5)            #設(shè)置并啟動套接字監(jiān)聽

while True:        #無限循環(huán),等待客戶端連接
  print('waiting for connection...')   
  tcpCliSocket,addr = tcpSerSocket.accept()    #被動接受客戶端連接     
  print('...connected from:',addr)

  while True:      #對話循環(huán),等待客戶端發(fā)送消息
    data = tcpCliSocket.recv(BUFSIZ)   #接收客戶端消息
    if not data:     #如果消息是空白,跳出對話循環(huán),關(guān)閉當(dāng)前連接
      break
    tcpCliSocket.send(data)   #如果收到消息,將消息原封不動返回客戶端

  tcpCliSocket.close()
tcpSerSocket.close()


          

創(chuàng)建 TCP 客戶端

同上邊一樣,一個簡單的非代碼流程

            
cs = socket()    #創(chuàng)建客戶端套接字
    cs.connect()     #嘗試連接服務(wù)器
    comm_loop:     #通信循環(huán)
        cs.send()/cs.recv()  #對話(發(fā)送/接收)
    cs.close()       #關(guān)閉客戶端套接字

          

實際中創(chuàng)建客戶端也是翻譯上邊的步驟

            
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from socket import *

HOST = 'localhost'    #服務(wù)器的主機(jī)名
PORT = 21571     #端口號
BUFSIZ = 1024     #緩沖區(qū)
ADDR = (HOST,PORT)   #地址

tcpCliSocket = socket(AF_INET,SOCK_STREAM)  #創(chuàng)建客戶端套接字
tcpCliSocket.connect(ADDR)     #連接服務(wù)器

while True:        #通信循環(huán)
  data = input('> ')    #客戶端輸入信息
  if not data:   #如果輸入信息為空,則跳出循環(huán),關(guān)閉通信
    break

  data = str.encode(data)      
  tcpCliSocket.send(data)   #發(fā)送客戶端信息
  data = tcpCliSocket.recv(BUFSIZ)   #接受服務(wù)器返回信息
  if not data:    #如果服務(wù)器未返回信息,關(guān)閉通信循環(huán)
    break
  print('get:',data.decode('utf-8'))

tcpCliSocket.close()


          

當(dāng)然,這只是最基礎(chǔ)的通信,而且關(guān)于主機(jī)名,端口號之類的東西暫時還不是很懂,目前所做的只是在同一臺電腦上通信,端口號也需要一致,如果不同的電腦進(jìn)行通信該怎么做?我還只是個小白.....

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久亚洲这里只有精品18 | 天天做天天添天天谢 | 人人人人人爽 | 国产色司机在线视频免费观看 | 久久久99精品免费观看 | 久久99精品视频 | 欧美日韩精品一区二区在线线 | 青娱乐在线免费 | 欧美视频一区 | 国产视频久久 | 奇米影视88888 | 久久月 | 国产香港一级毛片在线看 | 日本高清视频在线 | 亚洲国产综合久久精品 | 久久av一区 | 欧美日韩不卡在线 | 国精品日韩欧美一区二区三区 | 精品久久久网站 | 精品国产不卡一区二区三区 | 久久这里只有精品免费播放 | 久草视频播放 | 国产免费又色又爽又黄的网站 | 亚洲伊人精品 | 中文字幕av一区 | 亚洲国产精品久久婷婷 | 欧美一区二区三区久久综合 | 日产乱码卡一卡2卡三卡四麻豆 | 99精品免费久久久久久久久日本 | 中文在线观看免费视频 | 九九久久看少妇高潮A片特黄 | 国产一区亚洲一区 | 久久草在线视频免费 | 日日操夜夜爽 | 欧美日韩在线播放一区二区三区 | 国产欧美一区二区成人影院 | 欧美日韩一区二区三区四区五区 | 精品国产自在2o18 | 日韩欧美福利视频 | 欧美一级小视频 | 国产亚洲视频在线 |