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

python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(五):socket的一些補充

 更新時間:2014年06月09日 22:01:45   作者:  
前面已經(jīng)為大家介紹了python socket的一些相關(guān)知識,這里為大家補充下,方便需要的朋友

1、半開放socket

利用shutdown()函數(shù)使socket雙向數(shù)據(jù)傳輸變?yōu)閱蜗驍?shù)據(jù)傳輸。shutdown()需要一個單獨的參數(shù),該參數(shù)表示了如何關(guān)閉socket。具體為:0表示禁止將來讀;1
表示禁止將來寫;2表示禁止將來讀和寫。

2、timeouts控制超時

調(diào)用socket的settimeout()函數(shù),向其傳遞參數(shù),表明超時時間設(shè)置。當訪問一個socket,如果經(jīng)過了參數(shù)設(shè)定的時間后,什么都沒有發(fā)生,則會產(chǎn)生一個socket.timeout異常。
例如:當程序運行后,會等待數(shù)據(jù)傳入。在另一終端,利用telnet連接12345端口。連接成功后,顯示“連接來自:****”,如果此時5秒內(nèi),終端未進行輸入,系
統(tǒng)會提示連接超時退出。

代碼如下:

復(fù)制代碼 代碼如下:

# -*- coding: cp936 -*-
##tcp響應(yīng)服務(wù)器
import socket,traceback
host=''
port=12345
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((host,port))
s.listen(1)

while 1:
    try:
        clientsock,clientaddr=s.accept()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()
        continue
    clientsock.settimeout(5)
    try:
        print "連接來自:",clientsock.getpeername()
        while 1:
            data=clientsock.recv(4096)
            if not len(data):
                break
            clientsock.sendall(data)
            clientsock.sendall("\nI get it!\n")
##            t=raw_input('input the word:')
##            clientsock.sendall(t)
    except (KeyboardInterrupt,SystemExit):
        raise
    except socket.timeout:
        print '連接超時'
        pass
    except:
        traceback.print_exc()

    try:
        clientsock.close()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()

3、理解網(wǎng)絡(luò)字節(jié)順序

不同的平臺有不同的二進制數(shù)據(jù)編碼方法,為了解決這一總是,一種標準的二進制數(shù)據(jù)表示法,稱為網(wǎng)絡(luò)字節(jié)順序。在發(fā)送一個二進制整數(shù)之前,該整數(shù)首先被
轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。接收方收到后,在使用該數(shù)據(jù)之前,會先把網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換成本地的表示方法。
python的struct模塊提供了把數(shù)據(jù)在python和二進制數(shù)據(jù)之間轉(zhuǎn)換的支持。
主要的兩種基本格式:
H:適用于16位整數(shù)
I:適用于32位整數(shù)
驚嘆號表示struct模塊使用網(wǎng)絡(luò)字節(jié)順序來進行編碼和解碼。其它的格式見下表:

Character

Byte order

Size and alignment

@

native

native            湊夠4個字節(jié)

=

native

standard        按原字節(jié)數(shù)

<

little-endian

standard        按原字節(jié)數(shù)

>

big-endian

standard       按原字節(jié)數(shù)

!

network (= big-endian)

standard       按原字節(jié)數(shù)


常用語句:

struct.pack(fmt,v1,v2,...)將v1,v2按參數(shù)格式進行轉(zhuǎn)換。參數(shù)fmt是格式字符
串,這里主要是!I。v1,v2,...表示要轉(zhuǎn)換的python值。
struct.unpack(fmt,string)與pack剛好相反。
例如:

>>> import struct
>>> a=20
>>> str=struct.pack("!I",a)
>>> print repr(str)
'\x00\x00\x00\x14'
>>> print struct.unpack("!I",str)
(20,)

相關(guān)文章

  • 以911新聞為例演示Python實現(xiàn)數(shù)據(jù)可視化的教程

    以911新聞為例演示Python實現(xiàn)數(shù)據(jù)可視化的教程

    這篇文章主要介紹了以911新聞為例演示Python實現(xiàn)數(shù)據(jù)可視化的教程,主要基于NMF主題模型,需要的朋友可以參考下
    2015-04-04
  • 詳解Pytorch 使用Pytorch擬合多項式(多項式回歸)

    詳解Pytorch 使用Pytorch擬合多項式(多項式回歸)

    這篇文章主要介紹了詳解Pytorch 使用Pytorch擬合多項式(多項式回歸),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Python腳本實現(xiàn)一鍵自動整理辦公文件

    Python腳本實現(xiàn)一鍵自動整理辦公文件

    這篇文章主要介紹了Python實現(xiàn)腳本一鍵自動整理辦公文件,文件下載文件夾就變得亂七八糟,整理的時候非常痛苦,巴不得有一個自動化的工具幫我歸類文檔。下面小編就給大家分享自動化整理文件的小技巧,需要的朋友可以參考一下文章內(nèi)容
    2022-02-02
  • python魔法方法之__setattr__()

    python魔法方法之__setattr__()

    這篇文章主要介紹了python魔法方法之__setattr__(),python提供了諸多的魔法方法,其中__setattr__()方法主要用于類實例進行屬性賦值,接下來請和小編一起進入文章來了解更多相關(guān)內(nèi)容吧
    2022-03-03
  • tensorflow實現(xiàn)簡單的卷積網(wǎng)絡(luò)

    tensorflow實現(xiàn)簡單的卷積網(wǎng)絡(luò)

    這篇文章主要為大家詳細介紹了tensorflow實現(xiàn)簡單的卷積網(wǎng)絡(luò),使用的數(shù)據(jù)集是MNIST,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • numpy.ndarray.flatten()函數(shù)的具體使用

    numpy.ndarray.flatten()函數(shù)的具體使用

    本文主要介紹了numpy.ndarray.flatten()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 11個Python3字典內(nèi)置方法大全與示例匯總

    11個Python3字典內(nèi)置方法大全與示例匯總

    這篇文章主要給大家介紹了11個Python3字典內(nèi)置方法大全與示例的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python的Scrapy框架基本使用詳解

    Python的Scrapy框架基本使用詳解

    這篇文章主要介紹了Python的Scrapy框架基本使用詳解,Scrapy,Python開發(fā)的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù),Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試,需要的朋友可以參考下
    2023-12-12
  • Python numpy 模塊介紹

    Python numpy 模塊介紹

    這篇文章主要介紹了Python numpy 模塊,在motplotlib的學(xué)習(xí)過程中,我們使用最多的就是numpy模塊。下面我們將使用numpy進行創(chuàng)建數(shù)組、切片、索引、廣播等功能實操,需要的朋友可以參考一下
    2022-01-01
  • Python+Pyqt實現(xiàn)簡單GUI電子時鐘

    Python+Pyqt實現(xiàn)簡單GUI電子時鐘

    這篇文章主要為大家詳細介紹了Python+Pyqt實現(xiàn)簡單GUI電子時鐘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論

平利县| 汉源县| 寿阳县| 墨江| 名山县| 松桃| 门头沟区| 静海县| 鲁甸县| 太仆寺旗| 义马市| 姚安县| 杭锦后旗| 日土县| 宁河县| 皮山县| 长武县| 抚顺县| 新郑市| 齐齐哈尔市| 汕尾市| 连平县| 攀枝花市| 车致| 柘城县| 尼木县| 扎兰屯市| 安图县| 桃江县| 灵武市| 雷波县| 祥云县| 丹凤县| 博野县| 绥棱县| 辉县市| 上栗县| 石台县| 修水县| 太仆寺旗| 怀宁县|