国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python網絡編程學習筆記(五):socket的一些補充

2020-02-23 05:26:52
字體:
來源:轉載
供稿:網友

1、半開放socket

利用shutdown()函數使socket雙向數據傳輸變為單向數據傳輸。shutdown()需要一個單獨的參數,該參數表示了如何關閉socket。具體為:0表示禁止將來讀;1
表示禁止將來寫;2表示禁止將來讀和寫。

2、timeouts控制超時

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

代碼如下:

代碼如下:
# -*- coding: cp936 -*-
##tcp響應服務器
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、理解網絡字節順序

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石楼县| 静安区| 绍兴市| 延长县| 古浪县| 利川市| 库伦旗| 锡林浩特市| 佛坪县| 天柱县| 华亭县| 云梦县| 邵东县| 城市| 江油市| 雷山县| 彰化市| 肇庆市| 吕梁市| 天津市| 萍乡市| 阿拉善左旗| 牙克石市| 乌兰县| 建昌县| 荆门市| 旬阳县| 扶余县| 井陉县| 肇庆市| 资中县| 眉山市| 阳信县| 荆门市| 洮南市| 兰州市| 万安县| 彩票| 海宁市| 南和县| 环江|