Python socket 实现服务端和客户端数据传输(TCP)

举报
时光不写 发表于 2019/07/11 14:17:13 2019/07/11
【摘要】 Python socket 实现服务端和客户端数据传输(TCP)

  • 服务器端

    import socket
    #创建一个socket对象
    socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    host = "127.0.0.1"
    port = 9999
    #绑定地址
    socket_server.bind((host, port))
    #设置监听
    socket_server.listen(5)
    # socket_server.accept()返回一个元组, 元素1为客户端的socket对象, 元素2为客户端的地址(ip地址,端口号)
    client_socket, address = socket_server.accept()
    # while循环是为了让对话持续
    while True:
        # 接收客户端的请求
        recvmsg = client_socket.recv(1024)
        #把接收到的数据进行解码
        strData = recvmsg.decode("utf-8")
        #设置退出条件
        if strData == 'q':
            break
        print("接收: %s" % strData)
        #输入
        msg = input("发送: ")
        #发送数据,需要进行编码
        client_socket.send(msg.encode("utf-8"))#关闭服务器端socket_server.close()
  • 客户端

    import socket
    # 创建一个socket对象
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    host = "127.0.0.1"
    port = 9999
    #连接服务端
    client.connect((host, port))
    while True:
        send_msg = input("发送: ")
        #设置退出条件
        if send_msg == "q":
            break
        send_msg = send_msg    #发送数据,编码
        client.send(send_msg.encode("utf-8"))
        #接收服务端返回的数据
        msg = client.recv(1024)
        #解码
        print("接收:%s", % msg.decode("utf-8"))
        #关闭客户端
        client.close()
  • 流程图
    在这里插入图片描述
    图片来源:https://blog.csdn.net/slavik_/article/details/82430717
    本文链接:时光不写博客-Python socket





【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。