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环境没有测试. 

  • 相关阅读:
    BZOJ 1191 HNOI2006 超级英雄hero
    BZOJ 2442 Usaco2011 Open 修建草坪
    BZOJ 1812 IOI 2005 riv
    OJ 1159 holiday
    BZOJ 1491 NOI 2007 社交网络
    NOIP2014 D1 T3
    BZOJ 2423 HAOI 2010 最长公共子序列
    LCA模板
    NOIP 2015 D1T2信息传递
    数据结构
  • 原文地址:https://www.cnblogs.com/Anec/p/9663235.html
Copyright © 2011-2022 走看看