zoukankan      html  css  js  c++  java
  • python_网络编程socket(TCP)

    服务端:

    import socket
    sk = socket.socket()    #创建对象
    sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  #避免服务器重启时报address already in use错误
    sk.bind(('127.0.0.1',8877))     #把地址绑定到套接字(ip地址,端口号)
    sk.listen()     #监听链接
    conn,addr = sk.accept()     #接受客户端链接
    ret = conn.recv(1024)       #接受客服端信息(数据长度)
    print(ret)      #打印客户端信息
    conn.send(b'hi')    #向客户端发送星系(必须是bytes类型)
    conn.close()    #关闭客户端连接
    sk.close()      #关闭服务器套接字

    客户端:

    import socket
    sk = socket.socket()      #创建对象
    sk.connect(('127.0.0.1',8877))  #连接服务器(ip地址,端口号)
    sk.send(b'hello')      #向服务器发送信息(必须是bytes类型)
    
    ret = sk.recv(1024)     #接收信息(数据大小)
    print(ret)      #打印信息
    sk.close()      #关闭对象

      有收必有发,收发必相等,send和rexv必须是对应的

        send  -----  recv

        send  -----  recv

        recv  -----  send

    传递中文:

    # 服务端
    # 接收中文
    ret = conn.recv(1024).encode('utf-8')
    print(ret) #打印
    # 发送中文
    conn.send(bytes('七点半',encoding='utf-8'))
    
    # 客户端
    # 发送中文
    sk.send(bytes('几点了'.encode('utf-8')))
    # 接收中文
    ret = sk.recv(1024).encode('utf-8')
    print(ret)  #打印

    实例:聊天

      服务端:

    import socket
    sk = socket.socket()    #创建对象
    sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  #避免服务器重启时报address already in use错误
    sk.bind(('127.0.0.1',8877))     #把地址绑定到套接字(ip地址,端口号)
    sk.listen()     #监听链接
    conn,addr = sk.accept()     #接受客户端链接
    
    while True:
        ret = conn.recv(1024).decode('utf-8')
        print(ret)
        if ret == 'bye':
            conn.send(b'bye')
            break
        info = input('>>>')
        conn.send(bytes(info,encoding='utf-8'))
    
    conn.close()    #关闭客户端连接
    sk.close()      #关闭服务器套接字

    客户端:

    import socket
    sk = socket.socket()      #创建对象
    sk.connect(('127.0.0.1',8877))  #连接服务器(ip地址,端口号)
    
    while True:
        info = input('>>>')
        sk.send(bytes(info,encoding='utf-8'))
        ret = sk.recv(1024).decode('utf-8')
        print(ret)
        if ret == 'bye':
            sk.send(b'bye')
            break
    
    
    sk.close()      #关闭对象
  • 相关阅读:
    2018年最新整理ios APP审核被拒的常见原因
    在线一键生成安卓证书keystore文件
    iOS证书的类型功能和申请介绍
    【2018】ios app真机调试到上架App Store完整教程
    预防SQL注入
    Python模块——HashLib(摘要算法)与base64
    Python加密与解密
    PostgreSQL常用命令
    二级子目录(后台目录)设置二级域名
    积累
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11688824.html
Copyright © 2011-2022 走看看