TCP客戶端和服務端簡單代碼示例

TCP客戶端簡單代碼示例

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
    功能:TCP客戶端簡單代碼示例
    環境:python3.7
    日期:2019/8/22 19:28
    作者:指尖魔法師
    版本:1.0
"""
import socket


def main():
    # 1.創建tcp客戶端套接字
    tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 2.連接服務器
    server_ip = input("Please Input Server IP:")
    server_port = int(input("Please Input Server Port:"))
    tcp_client_socket.connect((server_ip, server_port))
    print("Connect Server Success!")

    while True:
        # 3.發送數據
        send_data = input("Please Input Send-data:")
        if send_data == "exit":
            break
        tcp_client_socket.send(send_data.encode("utf-8"))

        # 需要接收數據就接收
        recv_data = tcp_client_socket.recv(1024).decode("utf-8")
        print(recv_data)

    # 4.關閉tcp客戶端套接字
    tcp_client_socket.close()


if __name__ == '__main__':
    main()


 

TCP服務端簡單代碼示例

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
    功能:TCP服務端簡單代碼示例
    環境:python3.7
    日期:2019/8/22 19:28
    作者:指尖魔法師
    版本:1.0
"""
import socket


def main():
    # 1.創建tcp服務端套接字
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 2.綁定服務器相關信息
    server_port = 8001
    server_addr = ("", server_port)
    tcp_server_socket.bind(server_addr)

    # 3.把套接字由主動改爲被動,處於監聽狀態
    tcp_server_socket.listen(128)
    print("服務端處於監聽中......")

    while True:
        # 4.接受一個客戶端的連接請求,返回一個新的套接字和客戶端地址
        new_server_socket, client_addr = tcp_server_socket.accept()
        print("Client %s Connect Success!" % str(client_addr))

        while True:
            # 5.用新的套接字接受客戶端數據
            recv_data = new_server_socket.recv(1024).decode("utf-8")
            if not recv_data:
                break
            print("From Client %s Data:%s" % (str(client_addr), recv_data))

            # 6.返回消息給該客戶端
            new_server_socket.send("Recv-data is OK!".encode("utf-8"))

        # 7.關閉客戶端套接字
        new_server_socket.close()
        print("Client %s Disconnected!" % str(client_addr))

    # 8.關閉監聽套接字
    tcp_server_socket.close()


if __name__ == '__main__':
    main()


 

運行效果如下:

客戶端:

服務端:

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