python網路程式設計 socket 服務端 客戶端

2022-01-31 17:07:04 字數 3802 閱讀 5931

udp:

修改:2018-03-20 :重置了布局,增加了udp

socket又稱"套接字",應用程式通常通過"套接字"向網路發出請求或者應答網路請求。

網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket。

socket就像**線插口,只有**線插上了,才能通訊。

python中使用socket來進行網路連線傳輸

tcp服務端一般需要下面幾個操作:建立,繫結ip位址和埠,監聽埠,等待連線,接收資料,傳輸資料 ,關閉連線

import

socket

server=socket.socket()#

建立socket

server.bind((

'localhost

',1234))#

繫結server.listen()#

監聽print("

開始等待。。。")

conn,addr=server.accept()#

接收連線

print("

連線成功")

data=conn.recv(1024)#

接收資料

print

(data.decode())

conn.send(data)

#傳送資料

server.close()

#關閉連線

print("

--------------------

")

#

伺服器端

import

socket

server =socket.socket()

server.bind((

'localhost

',1234)) #

繫結ip和埠

server.listen(5) #

監聽while

true:

print("

開始等待")

conn, addr =server.accept()

print

(conn, addr)

print("

客戶端連線")

while

true:

data = conn.recv(1024)

print("

recv:

",data)

ifnot data: #

當data=0時為真

print("

連線斷開...")

break

conn.send(data)

server.close()

注:上述**中在linux中正常執行,在windows中會報錯!

如果要在windows中執行,需要捕獲異常:

#

伺服器端

import

socket

server =socket.socket()

server.bind((

'localhost

',1234)) #

繫結ip和埠

server.listen(5) #

監聽while

true:

print("

開始等待")

conn, addr =server.accept()

print

(conn, addr)

print("

客戶端連線")

while

true:

try:

data = conn.recv(1024)

print("

recv:

",data)

ifnot data: #

當data=0時為真

print("

連線斷開...")

break

conn.send(data)

except

connectionreseterror as e:

print

(e)

break

server.close()

tcp客戶端一般需要下面幾個操作:建立socket,連線遠端socket,傳輸資料 ,接收資料,關閉連線

import

socket

client=socket.socket()#

建立socket

client.connect(('

localhost

',1234))#

連線client.send("

你好".encode())#

傳送資料

data=client.recv(1024)#

接收資料

print

(data.decode())

client.close()

#關閉連線

import

socket

client=socket.socket()

client.connect((

'localhost

',1234))

while

true:

cmd=input("

>>")

if len(cmd)==0:

continue

client.send(cmd.encode())

cmd_res=client.recv(1024)

print

(cmd_res.decode())

client.close()

udp服務端通常有以下幾個操作:建立socket,繫結埠,傳輸資料,接收資料

import

socket

import

time

server=socket.socket(socket.af_inet,socket.sock_dgram)

server.bind((

"localhost

",1234))

start_time=time.time()

while

true:

data,addr=server.recvfrom(1024)

print

(data,addr)

server.sendto(

"hello

".encode(),addr)

time.sleep(1)

if time.time()-start_time>30:

break

server.close()

udp客戶端通常有以下幾個操作:建立socket,傳輸資料,接收資料

import

socket,time

client=socket.socket(socket.af_inet,socket.sock_dgram)

addr=("

localhost

",1234)

start_time=time.time()

while

true:

client.sendto(time.ctime().encode(),addr)

data,addr= client.recvfrom(1024)

print

(data)

time.sleep(1)

if time.time()-start_time>30:

break

client.close()

python 網路程式設計學習 套接字socket

以前也學過套接字程式設計,這次想系統全面的學習下python網路程式設計的使用。做這個,為檢測進度,也為後續留下筆記和足跡。socket 常用函式 socket.gethostname socket.gethostbyname import socket host socket.gethostnam...

Python網路程式設計學習筆記一 socket模組

coding utf 8 主要測試python網路程式設計中socket模組的使用 涉及到的技術點 套接字 面向連線的還有非面向連線套接字 tcp面向連線 udp非面向連線 1 匯入socket 2 建立socket socket三要素 1 socket family,2 socket type 3...

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