python網路程式設計

2022-03-19 15:59:40 字數 2080 閱讀 1977

server端的socket一般流程是這樣:

建立乙個socket(可以選擇socket型別inet,unix等,以及連線方式tcp/udp)

使用bind公開乙個埠,使得client可以方便連線

設定乙個listen佇列的大小

進入乙個無限迴圈,在此無限迴圈中,使用accept函式來等待客戶連線,此函式返回乙個新的socket, 對應於客戶端的socket,建立通訊通道。對socket的處理一般放在外部單獨的函式中(併發)

通過send()/recv()來對socket進行讀寫操作

例子:

1

deftcpserver():

2 srvsock =socket.socket( socket.af_inet, socket.sock_stream)

3 srvsock.bind(('', 9527))

4 srvsock.listen(5) 56

while

true:

7 clisock, (remotehost, remoteport) =srvsock.accept()

8print

"[%s:%s] connected

" %(remotehost, remoteport) 9#

do something on the clisock

10clisock.close()

1112

13if

__name__ == "

__main__

":

14 tcpserver()

建立乙個新的socket

使用connect函式與遠端主機獲得連線

在此socket上進行i/o操作

例項:

1

deftcpclient():

2 clisock =socket.socket(socket.af_inet, socket.sock_stream)

3 clisock.connect(('

localhost

', 9527)) 45

#i/o on this clisock 6#

clisock.send("") 7#

dat = clisock.recv(len) 89

print

dat

1011

if__name__ == "

__main__

":

12 tcpclient()

建立資料報形式的socket

公開乙個埠,一邊客戶端連線

開始接收資料

例項:

1

defudpserver():

2 address = ('', 9527)

3 srvsock =socket.socket(socket.af_inet, socket.sock_dgram)

4srvsock.bind(address) 5#

data,addr = srvsock.recvfrom(2048) 67

if__name__ == "

__main__

":

8 udpserver()

需要注意的是,server中address元組中的引號表示可以接受任何位址來的資料報,tcp例子中的則表示可以接受任意位址發起的連線。

新建乙個資料報socket

收發資料

例項:

1

defudpclient():

2 address = ('

localhost

', 9527)

3 clisock =socket.socket(socket.af_inet, socket.sock_dgram) 4#

clisock.sendto(data, address) 56

if__name__ == "

__main__

":

7 udpclient()

python網路程式設計 TCP網路程式設計

tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...

python 網路程式設計

今天晚上學習了一下python的網路程式設計,實現了client向server傳送資料,server反饋資訊 python 3.3 版本 server from socket import class tcpserver object def init self,serverport self.se...

python網路程式設計

網路通訊是計算機之間的程序之間的通訊。tcp程式設計 tcp連線建立是雙向通道,客戶端與服務端都可以給對方傳送資料。建立tcp連線時,主動發起連線的叫客戶端,被動響應連線的叫服務端。建立乙個tcp的socket連線 用socket family,type 建立套接字獲得socket物件。family...