python2.7 socket TCP 通讯

来源:互联网 发布:矩阵论教程 张绍飞 编辑:程序博客网 时间:2024/06/16 13:52

在不同的ide下,同为UTF-8编码,中文还会有乱码。同一个IDE下,中文正常。

server:

#coding:utf-8import SocketServerfrom SocketServer import StreamRequestHandler as SRHfrom time import ctimeimport timeimport sysreload(sys)sys.setdefaultencoding('utf8')#host = '127.0.0.1'host='127.0.0.1'port = 9999addr = (host, port)class Servers(SRH):    def handle(self):        print 'got connection from ', self.client_address        self.wfile.write('connection %s:%s at %s succeed!' % (host, port, ctime()))        while True:            data = self.request.recv(1024)            if not data:                break            #print data            cur_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())            print "%s RECV from %s, data is:%s" % (cur_time,self.client_address[0],data)            self.request.send(data)print 'server is running....'server = SocketServer.ThreadingTCPServer(addr, Servers)server.serve_forever()

client:

#coding:utf-8from socket import *import timeimport sysreload(sys)sys.setdefaultencoding('utf8')host = '127.0.0.1'port = 9999bufsize = 1024addr = (host, port)client = socket(AF_INET, SOCK_STREAM)client.connect(addr)print client.recv(bufsize)while True:    data = raw_input()    if not data or data == 'exit':        break    msg = '%s' % data    client.send(msg)    data = client.recv(bufsize)    if not data:        break        # print data.strip()    cur_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())    print ("%s receice from server :%s") % (cur_time,data)client.close()