zoukankan      html  css  js  c++  java
  • python

    环境是windows 环境.

    server端:

    import socket
    import subprocess
    ss = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    ip_port = ("127.0.0.1",8080)
    ss.bind(ip_port)
    while True:
        data,addr = ss.recvfrom(1024)
    
        re = data.decode()
        info = subprocess.Popen(re,shell=True,
                                stdin=subprocess.PIPE,
                                stderr=subprocess.PIPE,
                                stdout=subprocess.PIPE)
        if info.stderr.read():
            info2 = "输入错误!".encode("gbk")
        else:
            info2 = info.stdout.read()
        ss.sendto(info2,addr)

    clinet端:

    #coding:gbk
    import socket
    ip_port = ("127.0.0.1",8080)
    cli = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    while True:
        data = input(">>>:")
        cli.sendto(data.encode("utf-8"),ip_port)
        data2,addr = cli.recvfrom(5120)
        data3 = data2.decode("gbk")
        print(data3)

    反思:

      问题:经subprocess转换的数据编码为系统编码,而我当前用的是windows系统,所以默认编码为GBK编码,所以clinet端发送接收后的数据不能转换成UTF8的编码,只能转换为GBK编码.

    在Linux环境没有测试. 

  • 相关阅读:
    WML1.1[zt]
    Collections sort() 合并排序
    PowerBuliderconnect the oracle database
    window.location.reload;刷新
    PowerBuliderWorking with validation rules
    PowerBulider create database
    Jstl Core标签
    页面验证
    El表达式详解
    servlet的生命周期
  • 原文地址:https://www.cnblogs.com/Anec/p/9663235.html
Copyright © 2011-2022 走看看