Python採用socket類比TCP通訊的實現方法

來源:互聯網
上載者:User
本文執行個體講述了Python採用socket類比TCP通訊的實現方法。分享給大家供大家參考。具體實現方法如下:

對於TCP server端的建立而言,分為如下幾個步驟:

建立socket對象(socket):其中兩個參數分別為Address Family(如AF_INET為IPV4,AF_INET6為IPV6,AF_UNIX為UNIX域協議族)、socket類型(如SOCK_STREAM為TCP,SOCK_DGRAM為UDP)。

綁定伺服器位址(bind):參數為伺服器位址二元組。
監聽(listen):參數為允許的串連數。
等待請求(accept)。
接收資料(recv、recvfrom、recvfrom_into、recv_into)、發送資料(send、sendall、sendto)。
關閉串連(close)。

範例程式碼如下:

代碼如下:

Python socket: TCP server
Python#! /usr/bin/python
# -*- coding: utf-8 -*-
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('127.0.0.1', 12345)
print "Starting up on %s:%s" % server_address
sock.bind(server_address)
sock.listen(1)
while True:
print "Waiting for a connection"
connection, client_address = sock.accept()
try:
print "Connection from", client_address
data = connection.recv(1024)
print "Receive '%s'" % data
finally:
connection.close()


其中,伺服器位址二元組中,第一個元素為伺服器IP(留空為在任意IP監聽),第二個元素為伺服器連接埠號碼。

而對於TCP client而言,通常包括如下幾個步驟:

建立socket對象(socket):同server端。
串連伺服器(connect):參數為伺服器位址二元組。
發送和接收資料:同server端。
關閉串連:同server端。

範例程式碼如下:

代碼如下:

Python socket: TCP client
Python# /usr/bin/python
# -*- coding: utf-8 -*-
import socket
def check_tcp_status(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (ip, port)
print 'Connecting to %s:%s.' % server_address
sock.connect(server_address)
message = "I'm TCP client"
print 'Sending "%s".' % message
sock.sendall(message)
print 'Closing socket.'
sock.close()

if __name__ == "__main__":
print check_tcp_status("127.0.0.1", 12345)

希望本文所述對大家的Python程式設計有所協助。

  • 聯繫我們

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