python2.7 socket TCP 通讯

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

server:

#coding:utf-8
import SocketServer
from SocketServer import StreamRequestHandler as SRH
from time import ctime
import time

import sys
reload(sys)
sys.setdefaultencoding('utf8')

#host = '127.0.0.1'
host='127.0.0.1'
port = 9999
addr = (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-8
from socket import *
import time
import sys
reload(sys)
sys.setdefaultencoding('utf8')

host = '127.0.0.1'
port = 9999
bufsize = 1024
addr = (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()

猜你喜欢

转载自blog.csdn.net/zzzzzqf/article/details/72511239