首页 > 代码库 > Python 网络编程
Python 网络编程
今天学习了一个python 网络编程,感觉比较简单,也就是基本那几步,create--bind---listen -->receive/send---->close.
还学习一个Tcp版 Server编程框架,可以支持多个socket连接的那种。感觉也还可以。其中最简单的框架为TCPServer+BaseRequestHandler:。简单的例子如下:
import SocketServer#本程序可以支持多个客户端连接请求class MyRequestHandler(SocketServer.BaseRequestHandler): #self.request其实就是一个socket def handle(self): addr =self.request.getpeername() print "got connection from",addr while True: #当客户端主动断开连接时,self.recv(1024)会抛出异常 try: #read 1024 byte each time ,and remove empty letter including(space tab \r \n) data = self.request.recv(1024).strip() if not data: break print "receive from(%s):%s" %(self.client_address,data) self.request.sendall(data.upper()) except: traceback.print_exc() break self.request.close() addr=('127.0.0.1',8000)server =SocketServer.ThreadingTCPServer(addr,MyRequestHandler)server.serve_forever() #只是反复调用handle_request()#server.handle_request() #一个一个的处理链接请求。
客户端为:
# *_* coding=gb2312 *-*import timeimport sysimport loggingfrom socket import *host = "127.0.0.1"port = 8000def Test(): global host,port bufsize=1024 #print "Hello world" #logging.warn("there are some error") client =socket(AF_INET,SOCK_STREAM) client.connect((host,port)) while True: data =raw_input("Please input sending data:") if not data or data =="exit": break client.send("%s" % data) data =client.recv(bufsize) if not data: break print data.strip() client.close() if __name__ == '__main__': Test()
Python 网络编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。