在不同的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()