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()


运行效果如下:

客户端:

服务端:

发布了36 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/veray/article/details/100024012