乙個簡單的服務端與客戶端TCP通訊

2021-10-24 13:04:53 字數 1994 閱讀 7669

乙個簡單的服務端與客戶端tcp通訊

from socket import

*ip_port =

("10.33.0.75"

,8000

)#定義建立連線的ip位址與ip埠

back_log =

5#設定連線池為2

buffer_size =

1024

#設定每次傳送與接收的資料大小

tcp_sever = socket(af_inet, sock_stream)

#給予socket.stream方式的通訊就是基於流的方式進行通訊,也就是tcp通訊方式

tcp_sever.bind(ip_port)

#建立連線埠

tcp_sever.listen(back_log)

#listen中的back_log表示可以等待的訪問數

while

true

:#當客戶端埠之後,重複實現建立連線

print

("服務起開始執行"

)#提示伺服器執行

conn,addr = tcp_sever.accept(

)#conn表示等待的接收的埠號,addr表示等待接收的ip位址,等待客戶端連線,也就是在在這裡也就實現三次握手

print

("雙向鏈結是"

,conn)

print

("客戶端位址"

,addr)

while

true

:#實現迴圈接收與傳送訊息

try:

#如果客戶端異常退出,服務端將不至於發生錯誤而退出

data = conn.recv(buffer_size)

#接收到客服端的資料賦值給data,buffer_size表示一次性接收資料的大小

print

("客戶端發來的訊息是:"

, data.decode(

"utf-8"))

conn.send(data.upper())

#將接收客戶端的資料返回給客戶端

except exception:

break

; conn.close(

)#關閉連線

tcp_sever.close(

)#關閉socket流

注意:socket程式設計在傳送與接受資料的時候是以二進位制形式傳輸的,所有傳送與接收的時候需要對要傳送的資料和接受的資料進行分別的編碼和解碼。

from socket import

*ip_port =

("10.33.0.75"

,8000

)back_log =

5buffer_size =

1024

tcp_client = socket(af_inet, sock_stream)

#建立使用者

tcp_client.connect(ip_port)

#建立連線

while

true

: msg =

input

(">>:"

).strip(

)#讀取使用者輸入的資料

if msg ==

"quit()"

:#如果使用者輸入的quit()將退出程式

break

; tcp_client.send(msg.encode(

"utf-8"))

#向服務端傳送訊息

print

("客戶端傳送訊息"

) data = tcp_client.recv(buffer_size)

#等待並接收服務端返回的訊息

print

("接收到服務端傳送的訊息是:"

, data.decode(

"utf-8"))

#列印服務端返回的訊息內容

tcp_client.close(

)#關閉連線

簡單實現TCP服務端與客戶端

1 include2 include3 include4 include5 include6 include7 include8 include9 10 tcp服務端 簡單的網路聊天程式 11 1 建立socket 12 2 為socket繫結位址埠 13 3 開始監聽socket 告訴作業系統,開...

TCP客戶端與服務端通訊

客戶端 include include include include include in.h include include include include define maxline 1024 int main int argc,char ar 建立socketfd socketfd soc...

乙個簡單的TCP客戶端 服務端會話程式 C

服務端 1.new 乙個tcplistener listner 2.listner.start 3.while true 4.獲取socket socket s listner.acceptsocket 5.獲取netstream networkstream ns new networkstream...