zoukankan      html  css  js  c++  java
  • python 通信

    通信

    说通信,也就是两个py文件之间的数据交互

    先建两个py文件,一个是Server端

    import socket     #调用socket模块
    sk = socket.socket()    #为这个模块的方法重命名,为的是方便使用
    sk.bind(('127.0.0.1',8080))      #然后指定一个IP地址,一个端口 127.0.0.1是本地回环地址
    sk.listen()   # 开始监听          # 通常端口会被系统占用一些 所以习惯使用8080之后的端口
    conn,addr = sk.accept()    #接受别人的通讯请求   connection 连接  address 地址
    ret = sk.recv(1024)        # 接收别人的信息   1024指的是接收的最大字节数  这也是最大值了
    print(ret)                 #打印出别人说话内容
    conn.send(b'hi')           #进行回话
    conn.close()               #关闭连接
    sk.close()                 #关闭服务

    然后建一个Client端

    import socket
    sk = socket.socket()
    sk.connect(('127.0.0.1',8080))   #连接目标的地址和端口
    sk.rend(b'hello')                #发送内容
    ret = sk.recv(1024)               #接收
    print(ret)                        #打印接收
    sk.close()                        #关闭

    然后启动Server端再启动Client端

    然后Server端与Client端进行了一次短暂的对话

    然后  再写一个能人为输入的连接

    import socket
    sk = socket.socket()
    sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  # 避免服务重启的时候报address already in use
    sk.bind(('127.0.0.1',8088))
    sk.listen()
    conn,addr = sk.accept()
    while True:                    #设定一个循环 让人可以循环通信
        ret = conn.recv(1024).decode('utf-8')        #对传来的信息进行解码
        print(ret) 
        if ret == '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',8088))
    while True:
        info = input('>>>')
        sk.send(bytes(info,encoding='utf-8'))
        if info == 'bye':
            break
        ret = sk.recv(1024).decode('utf-8')
        print(ret)
        if ret == 'bye':
            sk.send(b'bye')
            break
    sk.close()

    这样就能实现两端人为输入交流了

    同时注意一定要进行转码和解码 不然中文会报错

  • 相关阅读:
    leetcode-19-merge
    leetcode-18-remove
    R-codes-tips
    python-bioInfo-codes-2
    Java-framework-Vaadin
    leetcode-17-BST
    生物信息学-知识笔记-1
    leetcode-16-greedyAlgorithm
    perl-tips-1
    计算机网络HTTP、TCP/IP包
  • 原文地址:https://www.cnblogs.com/GrandDarkness/p/8360649.html
Copyright © 2011-2022 走看看