網路程式設計(python語言)

2021-08-21 17:18:59 字數 1981 閱讀 6962

要了解網路程式設計,首先你需要了解客戶端/伺服器架構,用通俗的語言來講,伺服器相當於乙個永遠不休息的銀行出納員,而客戶端就是乙個又乙個的客戶,伺服器給客戶端提供相應的服務即為該出納員為客戶辦理業務。任何伺服器給客戶端提供服務前都要建立相應的套接字,這相當於出納員要求客戶寫相應的**,套接字就是乙個通訊端點。

套接字的歷史:套接字的起源可以追溯到 20 世紀 70 年代,它是加利福尼亞大學的伯克利版本 unix(稱 為 bsd unix)的一部分。因此,有時你可能會聽過將套接字稱為伯克利套接字或 bsd 套接 字。套接字最初是為同一主機上的應用程式所建立,使得主機上執行的乙個程式(又名乙個 程序)與另乙個執行的程式進行通訊。這就是所謂的程序間通訊(inter process communication, ipc)。有兩種型別的套接字:基於檔案的和面向網路的。對於上述兩種套接字,每個又分為兩種型別:面向連線的套接字和沒有連線套接字。面向連線的套接字又稱為流套接字,從字面意思來看,它需要在進行通訊前先建立乙個連線,實現這種連線型別的主要協議是傳輸控制協議(簡稱tcp),為了建立tcp套接字,必須用socket_stream作為套接字型別。無連線的套接字意味 著,在通訊開始之前並不需要建立連線。此時,在資料傳輸過程中並無法保證它的順序性、 可靠性或重複性,然而它的成本較低,這是它的優點。

下面將給出編寫tcp客戶端和服務端的大體思路以及具體**。

服務端:

from socket import *

from time import ctime

host=''

port=21567

bufsiz=1024

addr=(host,port)

tcpserversock=socket(af_inet,sock_stream)

tcpserversock.bind(addr)

tcpserversock.listen(5)

while true:

print 'waiting for connection...'

tcpclisock,addr=tcpserversock.accept()

print '...connected from:',addr

while true:

data=tcpclisock.recv(bufsiz)

if not data:

break

tcpclisock.send('[%s] %s' %(ctime(),data))

tcpclisock.close()

tcpsersock.close()

首先匯入所需模組,然後設定服務端的主機位址,埠號以及緩衝區的大小,接下來建立乙個tcp套接字,然後將套接字繫結到伺服器位址以及開啟監聽,最後進入服務端的無限迴圈,等待客戶端的連線,一旦連線成功服務端接收客戶端傳送的訊息後開始執行相應的功能並返回給客戶端,大致思路就是這樣。

客戶端:

from socket import *

host='localhost'

port=21567

bufsiz=1024

addr=(host,port)

tcpclisock=socket(af_inet,sock_stream)

tcpclisock.connect(addr)

while true:

data=raw_input('> ')

if not data:

break

tcpclisock.send(data)

data=tcpclisock.recv(bufsiz)

if not data:

break

print data

tcpclisock.close()

客戶端的**相對來說比較簡單,前兩部分與服務端一樣,然後建立乙個套接字請求連線,下面的迴圈向服務端傳送資訊,等待返回值,最後顯示出來。

以上就是簡單的tcp服務端和客戶端的**,udp與tcp類似,可以自己去試一下。

歡迎大神交流!

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...