1. 程式人生 > >python : 通過socket的Tcp/ip協議實現客戶端與服務端的資料互動

python : 通過socket的Tcp/ip協議實現客戶端與服務端的資料互動

#服務端

  1. 繫結socket
  2. 繫結目的ip和埠
  3. 建立監聽
  4. 建立連線
  5. 資料互動
import socket
'''
#建立socket :通過server接收
#繫結目的ip和埠號
#設定監聽
#建立連線Socket,Address接收資訊
#資料互動senddata 傳送資料
         receive 接收資料
'''
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
'''
socket.AF_INET :
socket.AF_STREAM :
'''
server.bind(("192.168.43.28",8080)) #繫結的ip和埠在元組中
server.listen(1)   #引數為監聽的數目
print("{}啟動成功,等待{}連線".format("伺服器","客戶端"))
Socket,Adress =server.accept()#返回一個新的socket連線和客戶端地址
Socket.sendto("你好,歡迎訪問伺服器".encode("utf-8"),("192.168.43.28",8080))
while True :
    receivedata = Socket.recv(1024).decode("utf-8")
    print("{} :{}".format("客戶端",receivedata))
    senddata = input("{}:".format("伺服器")).encode("utf-8")
    Socket.send(senddata)

#客戶端

  1. 建立socket
  2. 連線服務端
import socket
'''
建立socket通過client接收
連線服務端目的ip和埠號
與服務端資料互動
'''
#建立socket
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(("192.168.43.28",8080))
print("{} :{}".format("伺服器",client.recv(1024).decode("utf-8")))
while True :
    receivedata = client.recv(1024).decode("utf-8")
    print("{} :{}".format("伺服器", receivedata))
    clientdata = input("{} :".format("客戶端")).encode("utf-8")
    client.send(clientdata)