[Python]網路編程–socket入門

來源:互聯網
上載者:User
介紹:
#coding=utf-8'''筆記:通訊端:通訊端起源於20世紀79年代的加利福尼亞大學伯克利分校版本的Unix,就是我們常說的BSDunix。有的時候也叫“BSD通訊端”。開始的時候被設計為一台主機應用間的通訊,也就是處理序間通訊,也叫IPC。一般分為2種,基於檔案型的和基於網路型的。AF:地址家族PF:協議家族合法連接埠號碼是0 到65535 '''#建立一個TCP/IP通訊端 socket(socket_family, socket_type, protocol=0) #socket_family socket的類型  socket_type哪種方式傳輸tcp or udp import sockettcpSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#建立一個UDP/IP通訊端udpSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)'''函數                    描述伺服器端通訊端函數 s.bind()            綁定地址(主機,連接埠號碼對)到通訊端s.listen()          開始 TCP 監聽s.accept()          被動接受 TCP 客戶的串連,(阻塞式)等待串連的到來用戶端通訊端函數s.connect()         主動初始化 TCP 伺服器串連s.connect_ex()      connect()函數的擴充版本,出錯時返回出錯碼,而不是拋異常公用用途的通訊端函數s.recv()            接收 TCP 資料s.send()            發送 TCP 資料s.sendall()         完整發送 TCP 資料s.recvfrom()        接收 UDP 資料s.sendto()          發送 UDP 資料s.getpeername()     串連到當前通訊端的遠端的地址s.getsockname()     當前通訊端的地址s.getsockopt()      返回指定通訊端的參數s.setsockopt()      設定指定通訊端的參數s.close()           關 閉通訊端Blocking-Oriented Socket Methodss.setblocking()     設定通訊端的阻塞與非阻塞模式s.settimeout()      設定阻塞通訊端操作的逾時時間s.gettimeout()      得到阻塞通訊端操作的逾時時間面向檔案的通訊端的函數 s.fileno()          通訊端的檔案描述符s.makefile()        建立一個與該通訊端關連的檔案'''
TCP服務端

#coding:utf-8#最簡單的一個案例 一個server和一個client 的Tcp服務#用戶端:'''用戶端的運行流程:建立socket綁定連接埠開始迴圈監聽接受用戶端串連迴圈通訊關閉用戶端串連關閉socket'''#伺服器端接受用戶端的字元,並說一句話 import socketfrom time import ctime #定義幾個參數,例如地址連接埠號碼等HOST = ''PORT = 8808  #這裡是整形BUFFFERSIZE = 1024ADDR =(HOST,PORT)#print ADDR#建立並綁定tcpSockSer = socket.socket(socket.AF_INET,socket.SOCK_STREAM)tcpSockSer.bind(ADDR)tcpSockSer.listen(10) while True:    print 'The TCP Server is starting....',ctime()    tcpSockClt,addr=tcpSockSer.accept()    print 'The client is ',addr ,'----',ctime()    print tcpSockClt.recv(BUFFFERSIZE)         tcpSockClt.send("Server: I am a Server !")    tcpSockClt.close()tcpSockSer.close()
TCP用戶端

#coding:utf-8#python2.7'''用戶端的邏輯建立socket串連伺服器迴圈通訊收發訊息關閉socket'''import socketfrom time import ctimeHOST = '127.0.0.1'PORT = 8808BUFFERSIZE = 1024ADDR = (HOST,PORT)tcpSockClt=socket.socket(socket.AF_INET,socket.SOCK_STREAM)tcpSockClt.connect(ADDR)while True:    print 'client is ready ...'    tcpSockClt.send('Client: I am a Client!')    data=tcpSockClt.recv(BUFFERSIZE)    if not data:        break     print data tcpSockClt.close()
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.