Python socket類比TCP通訊執行個體

來源:互聯網
上載者:User

對於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)

聯繫我們

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