Python網路程式設計之TCP套接字簡單用法示例

2022-08-26 11:03:13 字數 1728 閱讀 5181

python網路程式設計之tcp套接字簡單用法示例

下面根據**來介紹一下最簡單的tcp程式,由客戶端輸入資料,傳送給伺服器,伺服器加上時間後返回給客戶端 

#!/usr/bin/python

'test tcp server'

from socket import * #套接字所需要的模組

from time import ctime #時間模組

host = '' #主機名,為空,表示可以繫結在任何有效的位址上。

port = 21567 #隨機選的可用埠

bufsiz = 1024 #傳送資料的緩衝區

addr = (host, port)

tcpsersock = socket(af_inet, sock_stream) #第乙個引數是socket_family,此處用常用的af_inet,第二個引數是流套接字,即建立的是tcp

tcpsersock.bind(addr) #套接字與位址繫結

tcpsersock.listen(5) #開始監聽,引數表示允許的最大連線數

while true:

print 'waiting for connection...'

tcpclisock, addr =

tcpsersock.accept() #開啟大門等待客人,accept返回乙個元組(connection,address)。第乙個元素是新的socket物件,伺服器必須通過它與客戶通訊;第二個是客戶的位址。

print '...connected from:',addr

while true:

data =

tcpclisock.recv(bufsiz) #洗耳恭聽,把客人的話記錄到data中

if not

data: #客人話說完了,送客

break

tcpclisock.send('[%s] %s' %(ctime(), data)) #傳送當前時間,以及資料給客人

tcpclisock.close() #送客,關閉與該客人通訊的套接字

tcpsersock.close() #因為上面是死迴圈,此處不是必須的,只是提醒大家離開的時候務必要關門!

上面用到了兩個套接字,第乙個tcpsersock稱為歡迎套接字,第二個tcpclisock才是真正負責與客戶端通訊的套接字,這樣做的好處是,乙個伺服器可以同時接待多個客人。

下面則是客戶端的**,非常簡單: 

#!/usr/bin/python

'test tcp client'

from socket import *

host = 'localhost' #因為我是在同一臺機器上執行,所以是localhost,不同主機的話,此處需要改成伺服器位址

port = 21567

bufsiz = 1024

addr = (host, port)

tcpclisock = socket(af_inet, sock_stream) #客戶端只需要乙個套接字

tcpclisock.connect(addr) #發起連線

while true:

data = raw_input('>')

tcpclisock.send(data) #傳送資料

if not data:

break

data = tcpclisock.recv(bufsiz) #接收資料

print data

tcpclisock.close()

linux網路程式設計之二TCP套介面程式設計

本節講解tcp套介面程式設計中需要的最基本的介面函式。tcp套介面程式設計的基本流程如下圖所示 上圖描述了tcp連線的基本過程與其中所需要的套介面函式,下面進行具體描述 1 socket函式 在網路程式設計中所需要進行的第一件事情就是建立乙個socket,無論是客戶端還是伺服器端,都需要建立乙個so...

Python中網路程式設計之TCP

tcp是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議,python 實現 伺服器端 步驟見注釋.import socket 網路之間傳輸是二進位制形式的,注意編碼和解碼 建立伺服器 sever socket.socket socket.af inet,socket.sock stream 繫...

網路程式設計之TCP程式設計

tcp程式設計中,如果要完成通訊,通訊雙方必須要建立socket,通過socket完成通訊。tcp通訊步驟 1 伺服器啟動serversocket作為通訊的server端,等待客戶端鏈入。2 客戶端建立socket作為通訊的client端 3 client端鏈入server端後建立可靠的 雙向的 持...