#!/usr/bin/env python3# encoding: utf-8## Copyright (c) 2010 Doug Hellmann. All rights reserved.#"""Sending Unicode data over a socket."""#end_pymotw_headerimport sysimport socketserverclass Echo(socketserver.BaseRequestHandler):def handle(self):"""Get some bytes and echo them back to the client.There is no need to decode them, since they are not used."""data = self.request.recv(1024)self.request.send(data)class PassThrough:def __init__(self, other):self.other = otherdef write(self, data):print('Writing :', repr(data))return self.other.write(data)def read(self, size=-1):print('Reading :', end=' ')data = self.other.read(size)print(repr(data))return datadef flush(self):return self.other.flush()def close(self):return self.other.close()if __name__ == '__main__':import codecsimport socketimport threadingaddress = ('localhost', 0) # let the kernel assign a portserver = socketserver.TCPServer(address, Echo)ip, port = server.server_address # what port was assigned?t = threading.Thread(target=server.serve_forever)t.setDaemon(True) # don't hang on exitt.start()# Connect to the servers = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((ip, port))# Wrap the socket with a reader and writer.read_file = s.makefile('rb')incoming = codecs.getreader('utf-8')(PassThrough(read_file))write_file = s.makefile('wb')outgoing = codecs.getwriter('utf-8')(PassThrough(write_file))# Send the datatext = 'français'print('Sending :', repr(text))outgoing.write(text)outgoing.flush()# Receive a responseresponse = incoming.read()print('Received:', repr(response))# Clean ups.close()server.socket.close()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型