python3 最簡單的網絡編程tcp(socket數據流)


TCP 基於連接的、 是連續的、 可靠的、 效率⽐較低、 更像是打電話, 聊天的過程中不能中斷。
傳輸控制協議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議

 

服務器端

# tcp_server.py
import socket


sk = socket.socket()  # 創建socket對象
sk.bind(("127.0.0.1", 9998))  # 綁定IP和端口
sk.listen()  # 開啟監聽
conn, address = sk.accept()  # 等待客戶端連接 阻塞
while 1:  # 讓服務端和客戶端循環通信
    send_msg = input(">>>:").strip()  # 要發送的消息
    conn.send(send_msg.encode("utf-8"))  # 發送消息給客戶端
    if send_msg.upper() == "BYE":  # 如果發送的消息是BYE就退出循環
        break
    recv_msg = conn.recv(1024)  # 接收來自客戶端的消息
    print("來自客戶端的消息:", recv_msg.decode("utf-8"))
    if recv_msg.decode("utf-8").upper() == "BYE":  # 如果來自客戶端的消息是BYE就退出循環
        break
conn.close()  # 關閉conn連接
sk.close()  # 關閉sk連接

 

socket套接字 port|IP|mac|數據,所以叫套接字

tcp服務端

  1、導入socket模塊

  2、創建socket對象

  3、綁定IP和端口

  4、開啟監聽

  5、等待客戶端連接,阻塞

  6、發送消息給客戶端,阻塞

  7、接收來自客戶端的消息  

  8、關閉conn連接

  9、關閉socket連接 

 

客戶端

# tcp_client.py
import socket


sk = socket.socket()  # 創建socket對象
sk.connect(("127.0.0.1", 9998))  # 連接服務端
while 1:  # 服務端和客戶端循環通訊
    recv_msg = sk.recv(1024)  # 接收來自服務端的消息
    print("來自服務端的消息:", recv_msg.decode("utf-8"))
    if recv_msg.decode("utf-8").upper() == "BYE":  # 如果來自服務端的消息是BYE就直接退出循環
        break
    send_msg = input(">>>:").strip()  # 要發送給服務端的消息
    sk.send(send_msg.encode("utf-8"))  # 發送消息給服務端
    if send_msg.upper() == "BYE":  # 如果發送的消息是BYE就直接退出循環
        break
sk.close()  # 關閉sk連接

 

tcp客戶端:

  1、導入socket模塊

  2、創建socket對象

  3、建立socket連接

  4、接收來自於服務端的消息 

  5、發送消息給客戶端

  6、關閉socket連接

 

注意:

  1、先啟動服務器端程序,再啟動客戶端程序。

  2、服務器端先發送消息,客戶端收到消息后,再發送消息給服務器端。(程序怎么寫,誰先發送消息)


免責聲明!

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



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