Python使用Socket實現TCP協議模擬服務器端,實現局域網內通信

在使用socket實現TCP與UDP不同就在於
tcp_socket = socket(AF_INET, SOCK_STREAM)
udp_socket = socket(AF_INET, SOCK_DGRAM)
其次TCP協議的話客戶端需要連接服務器,服務端需要設置接聽狀態

from socket import *


def main():
    # 1.創建套接字socket
    tcp_socket = socket(AF_INET, SOCK_STREAM)
    # 2.綁定信息bind
    tcp_socket.bind(("", 5773))
    # 3.設置爲監聽狀態listen
    tcp_socket.listen(128)

    # 循環多次accept,爲多個客戶端服務
    while True:
        print("Wait Client...")

        # 等待客戶端連接accept
        new_client, client_addr = tcp_socket.accept()
        # 打印接入客戶端地址信息
        print("Access Client:%s : %d" % (client_addr[0], client_addr[1]))

        # 爲同一個客戶端多次服務
        while True:
            # 接收客戶端發送來的請求
            new_data = new_client.recv(1024)

            # recv解堵塞兩種方式:1.客戶端發來數據  2.客戶端調用close
            if new_data:
                # 打印客戶端發送到來的信息
                print("message:%s" % new_data.decode("gbk"))
                # 反饋客戶端信息接收到
                new_client.send(b"-----succeed----")
            else:
                break

        # 關閉該客戶端套接字,不再爲此客戶端服務
        new_client.close()
        print("Done...")

    # 關閉套接字
    tcp_socket.close()


if __name__ == '__main__':
    main()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章