【python學習】socket編程

來源:互聯網
上載者:User

標籤:address   python   socket   網路編程   


網路編程的一個基本組件就是通訊端(socket)

一個通訊端就是一個socket模組中的socket類的執行個體,他的執行個體化需要3個參數:

第一個參數是地址族(預設是socket.AF_INET,首碼AF_表示地址族(address family))

第二個參數是流(socket.SOCK_STREAM,預設值) 或者 資料報(socket.SOCK_DGRAM)通訊端

第三個參數是協議,預設是0(一般可不提供)


# 匯入socket庫:import socket# 建立Socket時,AF_INET指定使用IPv4協議,IPv6就指定為AF_INET6。SOCK_STREAM指定使用面向流的TCP協議s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 建立串連:注意參數是一個tuple,包含地址和連接埠號碼。s.connect((‘www.baidu.com‘, 80))


socket有兩個方法:send和recv


s.send(‘GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection: close\r\n\r\n‘)


s.recv:用一個所需(最大)位元組數做參數調用recv來接收資料,一般建議1024



一個簡單伺服器端的例子

import sockets = socket.socket()host = socket.gethostname()  #擷取本機port = 2233s.bind((host, port))s.listen(5)     #調用listen()方法開始監聽連接埠,傳入的參數指定等待串連的最大數量:print ‘Waiting for connection...‘while True:#伺服器通過迴圈來接受串連,accept()會等待並返回一個用戶端的串連,類型是tuple:  c,addr = s.accept()   print ‘Get connection from  %s:%s‘ % addr  c.send(‘Thank you for connecting‘)  c.close()
##升級版##使用物件導向的思維,一個基於SocketServer類的伺服器from SocketServer import TCPServer,StreamRequestHandlerclass Handler(StreamRequestHandler):  def handle(self):    addr = self.request.getpeername()    print ‘Get connection from: %s %s‘ % addr    self.wfile.write(‘Thank you for connection‘)#‘‘Null 字元表示程式啟動並執行本機server = TCPServer((‘‘,2345),Handler)server.serve_forever()


一個用戶端的例子

import sockets = socket.socket()host = socket.gethostname()port = 2233s.connect((host, port))print s.recv(2233)


【python學習】socket編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.