Python 簡單soket例子


 
簡單的soket例子

 

 

 

Python 2.0 客戶端服務端傳輸

  1.可發字符串,可發字節 bys類型

 

Python 3.0 客戶端服務端傳輸

  1.只能發bys,比特流的類型。

  2.bys類型只能接收 ASCLL碼里的數據類型。

  3.如果想傳入中文:

 

簡單的soket鏈接例子

需求:服務端幫客戶端處理字符串信息為大寫

 

客戶端

#客戶端
import socket

#聲明協議類型,同事生成socket連接對象
client = socket.socket()

#鏈接地址和端口,元組(本地,端口)
client.connect(('localhost',6969))

#發送數據 b將字符串轉為bys類型
client.send(b"Hello World!")

#接收服務器端的返回,需要聲明收多少,默認1024字節
data = client.recv(1024)

#打印data是recv的data
print("recv:",data)

#關閉接口
client.close()
#結果 #recv: b'HELLO WORLD!'

 

服務端

#服務端
import socket

#聲明類型,生成socket鏈接對象
server = socket.socket()

#監聽接收端口元組(本地,端口),綁定要監聽的端口
server.bind(('localhost',6969))

#監聽
server.listen()

print("我要開始等待客戶端了")
#1.等待客戶端 #會返回鏈接的標記位conn,與連接的地址
#2.客戶端同過conn,addr進行通話
#3.conn就是客戶端連接過來而在服務器端為其生成的一個連接實例
conn,addr = server.accept()

#查看標記位與IP地址
print(conn,addr)


print("客戶端 他 進來了!")
#接收數據
data = conn.recv(1024)
print("recv:",data)

#返回一個值,處理變為大寫
conn.send(data.upper())


#關閉鏈接
server.close()
#結果
#我要開始等待客戶端了
# <socket.socket fd=336, family=AddressFamily.AF_INET, 
# type=SocketKind.SOCK_STREAM, proto=0,
# laddr=('127.0.0.1', 6969), 
# raddr=('127.0.0.1', 55652)> ('127.0.0.1', 55652)
#客戶端 他 進來了!
#recv: b'Hello World!'

 

注:客戶端操作

(1)傳送時“ .encode("utf-8") ”轉成ASCLL碼(發不了空)。

(2) 返回時" .decode() "UTF-8轉成 Unicode。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM