python2.7 socket TCP 通讯

本文介绍了一个简单的Python Socket服务器和客户端应用程序,该程序通过设置默认编码为UTF-8来解决中文字符在不同IDE环境中出现的乱码问题。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值