基於socket的網路程式設計

2022-08-18 16:06:10 字數 2078 閱讀 5602

tcp協議下的socket使用

伺服器端模板

import

socket

server =socket.socket()

server.bind((

'192.168.12.211

',16888)) #

插入**卡

server.listen() #

開始監聽

while

true:

client,addr = server.accept() #

鏈結迴圈,可以不斷接收新鏈結

while

true:

try:

data = client.recv(1024) #

迴圈收發訊息

ifnot data: #

判斷訊息是否為空

client.close()

break

print('

收到客戶端的訊息:%s

'%data.decode('

utf-8'))

client.send(data)

except connectionreseterror: #

接收客戶端關閉時的異常

print('

客戶端強行關閉鏈結')

client.close()

break

break

server.close()

客戶端:

import

socket

client =socket.socket()

client.connect((

'192.168.12.211

',16888)) #

鏈結到伺服器

while

true:

msg = input('

>>>>>:

').strip() #

迴圈傳送資訊

client.send(msg.encode('

utf-8

'))

data = client.recv(1024) #

接收伺服器資訊

print('

收到伺服器:%s

'%data.decode('

utf-8

'))

基於udp協議的 socket通訊

伺服器端

import

socket

#udp協議 在建立socket是 只有乙個型別不同

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

server.bind((

"127.0.0.1

",8888))

while

true:

data,addr = server.recvfrom(1024) #

阻塞 直到收到資料為止

print("

收到來自%s的訊息:%s

" % (data.decode("

utf-8

"),addr[0]))

#返回值為 資料 和 對方ip位址 和埠號

server.sendto(data.upper(),addr)

server.close()

客戶端

import

socket

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

while

true:

data = input("

>>:

").encode("

utf-8")

client.sendto(data,(

"127.0.0.1

",8888))

d,addr = client.recvfrom(1024)

print(d.decode("

utf-8"))

client.close()

基於Udp的Socket網路程式設計

1.新建乙個工作空間 udp 新增兩個工程udpclient 和 udpsrv 2.在工程udpsrv中新增udpsrv.cpp檔案 如下 include include void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1...

基於UDP的socket網路程式設計

udp的網路程式設計模型較tcp簡單一些,因為udp的特點與tcp的不一樣,tcp是面向連線的,udp是無連線的。udp的服務端程式設計可總結為以下幾個步驟 1.使用socket建立通訊描述符 int socket int domain,int type,int protocol type引數應選擇...

基於TCP協議的網路程式設計 socket程式設計 1

1.1.網路位元組序 記憶體中的多位元組資料相對於記憶體位址有大端和小端之分,磁碟檔案中的多位元組資料相對於檔案中的偏移位址也有大端小端之分。網路資料流同樣有大端小端之分,那麼如何定義網路資料流的位址呢?傳送主機通常將傳送緩衝區中的資料按記憶體位址從低到高的順序發出,接收主機把從網路上接到的位元組依...