最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python網(wǎng)絡(luò)編程之TCP套接字簡單用法示例

 更新時(shí)間:2018年04月09日 10:47:54   作者:jiange_zh  
這篇文章主要介紹了Python網(wǎng)絡(luò)編程之TCP套接字簡單用法,結(jié)合實(shí)例形式分析了TCP套接字的功能及客戶端、服務(wù)器端具體實(shí)現(xiàn)方法,需要的朋友可以參考下

本文實(shí)例講述了Python網(wǎng)絡(luò)編程之TCP套接字簡單用法。分享給大家供大家參考,具體如下:

上學(xué)期學(xué)的計(jì)算機(jī)網(wǎng)絡(luò),因?yàn)橹斑€未學(xué)習(xí)python,而java則一知半解,C寫起來又麻煩,所以一直都沒有真正實(shí)現(xiàn)過TCP套接字編程。

最近學(xué)習(xí)了python,而用它來寫套接字又十分方便簡單,所以當(dāng)然要試一試咯。

下面根據(jù)代碼來介紹一下最簡單的tcp程序,由客戶端輸入數(shù)據(jù),發(fā)送給服務(wù)器,服務(wù)器加上時(shí)間后返回給客戶端

#!/usr/bin/python
'test TCP server'
from socket import *  #套接字所需要的模塊
from time import ctime  #時(shí)間模塊
HOST = ''  #主機(jī)名,為空,表示可以綁定在任何有效的地址上。
PORT = 21567  #隨機(jī)選的可用端口
BUFSIZ = 1024  #發(fā)送數(shù)據(jù)的緩沖區(qū)
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)  #第一個(gè)參數(shù)是socket_family,此處用常用的AF_INET,第二個(gè)參數(shù)是流套接字,即創(chuàng)建的是tcp
tcpSerSock.bind(ADDR)  #套接字與地址綁定
tcpSerSock.listen(5)  #開始監(jiān)聽,參數(shù)表示允許的最大連接數(shù)
while True:
  print 'waiting for connection...'
  tcpCliSock, addr = tcpSerSock.accept()  #打開大門等待客人,accept返回一個(gè)元組(connection,address)。第一個(gè)元素是新的socket對(duì)象,服務(wù)器必須通過它與客戶通信;第二個(gè)是客戶的地址。
  print '...connected from:',addr
  while True:
    data = tcpCliSock.recv(BUFSIZ)  #洗耳恭聽,把客人的話記錄到data中
    if not data:  #客人話說完了,送客
      break
    tcpCliSock.send('[%s] %s' %(ctime(), data))  #發(fā)送當(dāng)前時(shí)間,以及數(shù)據(jù)給客人
  tcpCliSock.close()  #送客,關(guān)閉與該客人通信的套接字
tcpSerSock.close()  #因?yàn)樯厦媸撬姥h(huán),此處不是必須的,只是提醒大家離開的時(shí)候務(wù)必要關(guān)門!

上面用到了兩個(gè)套接字,第一個(gè)tcpSerSock稱為歡迎套接字,第二個(gè)tcpCliSock才是真正負(fù)責(zé)與客戶端通信的套接字,這樣做的好處是,一個(gè)服務(wù)器可以同時(shí)接待多個(gè)客人。

下面則是客戶端的代碼,非常簡單:

#!/usr/bin/python
'test tcp client'
from socket import *
HOST = 'localhost'  #因?yàn)槲沂窃谕慌_(tái)機(jī)器上運(yùn)行,所以是localhost,不同主機(jī)的話,此處需要改成服務(wù)器地址
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)  #客戶端只需要一個(gè)套接字
tcpCliSock.connect(ADDR)  #發(fā)起連接
while True:
  data = raw_input('>')
  tcpCliSock.send(data)  #發(fā)送數(shù)據(jù)
  if not data:
    break
  data = tcpCliSock.recv(BUFSIZ)  #接收數(shù)據(jù)
  print data
tcpCliSock.close()

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PyTorch 解決Dataset和Dataloader遇到的問題

    PyTorch 解決Dataset和Dataloader遇到的問題

    今天小編就為大家分享一篇PyTorch 解決Dataset和Dataloader遇到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 解決tensorflow1.x版本加載saver.restore目錄報(bào)錯(cuò)的問題

    解決tensorflow1.x版本加載saver.restore目錄報(bào)錯(cuò)的問題

    今天小編就為大家分享一篇解決tensorflow1.x版本加載saver.restore目錄報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 可視化pytorch 模型中不同BN層的running mean曲線實(shí)例

    可視化pytorch 模型中不同BN層的running mean曲線實(shí)例

    這篇文章主要介紹了可視化pytorch 模型中不同BN層的running mean曲線實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • pytorch中tensorboard安裝及安裝過程中出現(xiàn)的常見錯(cuò)誤問題

    pytorch中tensorboard安裝及安裝過程中出現(xiàn)的常見錯(cuò)誤問題

    這篇文章主要介紹了pytorch中tensorboard安裝及安裝過程中出現(xiàn)的常見錯(cuò)誤問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python統(tǒng)計(jì)一個(gè)文本中重復(fù)行數(shù)的方法

    python統(tǒng)計(jì)一個(gè)文本中重復(fù)行數(shù)的方法

    這篇文章主要介紹了python統(tǒng)計(jì)一個(gè)文本中重復(fù)行數(shù)的方法,涉及針對(duì)Python中dict對(duì)象的使用及相關(guān)本文的操作,具有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • python中decimal模塊的用法

    python中decimal模塊的用法

    本文主要介紹了python中decimal模塊的用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 機(jī)器學(xué)習(xí)10大經(jīng)典算法詳解

    機(jī)器學(xué)習(xí)10大經(jīng)典算法詳解

    這篇文章主要為大家詳細(xì)介紹了機(jī)器學(xué)習(xí)10大經(jīng)典算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python實(shí)現(xiàn)在Excel文件中寫入圖表

    Python實(shí)現(xiàn)在Excel文件中寫入圖表

    這篇文章主要為大家介紹了如何利用Python語言實(shí)現(xiàn)在Excel文件中寫入一個(gè)比較簡單的圖表,文中的實(shí)現(xiàn)方法講解詳細(xì),快動(dòng)手嘗試一下吧
    2022-05-05
  • 淺談Python數(shù)學(xué)建模之整數(shù)規(guī)劃

    淺談Python數(shù)學(xué)建模之整數(shù)規(guī)劃

    整數(shù)規(guī)劃并不一定是線性規(guī)劃問題的變量取整限制,對(duì)于二次規(guī)劃、非線性規(guī)劃問題也有變量取整限制而引出的整數(shù)規(guī)劃。但在數(shù)學(xué)建模問題中所說的整數(shù)規(guī)劃,通常是指整數(shù)線性規(guī)劃。整數(shù)規(guī)劃與線性規(guī)劃的差別只是變量的整數(shù)約束。選擇簡單通用的編程方案,讓求解器去處理吧
    2021-06-06
  • Python?ORM數(shù)據(jù)庫框架Sqlalchemy的使用教程詳解

    Python?ORM數(shù)據(jù)庫框架Sqlalchemy的使用教程詳解

    對(duì)象關(guān)系映射(Object?Relational?Mapping,簡稱ORM)模式是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。本文主要介紹了其使用的相關(guān)資料,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-10-10

最新評(píng)論

阜平县| 永寿县| 泰州市| 固镇县| 明星| 白朗县| 齐齐哈尔市| 互助| 内乡县| 怀柔区| 建湖县| 江门市| 曲麻莱县| 临安市| 十堰市| 武定县| 伊金霍洛旗| 双桥区| 罗城| 武宁县| 贵溪市| 洪洞县| 右玉县| 句容市| 和顺县| 东乡族自治县| 元氏县| 南京市| 五常市| 鄂托克前旗| 临洮县| 和田市| 绥德县| 庄浪县| 雷山县| 祁东县| 铁力市| 河北区| 苍山县| 广河县| 巴彦县|