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

在这里插入图片描述

发布了44 篇原创文章 · 获赞 68 · 访问量 5113

猜你喜欢

转载自blog.csdn.net/qq_25404477/article/details/104147219