python socket学习
2016-03-02 00:00
811 查看
摘要: 第一次接触socket,一直以为会先php接触到socket,懒一直没看。。 看到python的socket的学习学习
异步多线程服务端Server.py
socket 上传文件
#server.py #coding:utf-8 import socket sk = socket.socket() ip_port = ('127.0.0.1',9999) sk.bind(ip_port) sk.listen(5) while True: conn,address = sk.accept() conn.send('hello.') flag = True while flag: data = conn.recv(1024) print data if data =='exit': flag = False conn.send('sx') conn.close()
#client.py #coding:utf-8 import socket client = socket.socket() ip_port = ('127.0.0.1',9999) client.connect(ip_port) while True: data = client.recv(1024) print data inp = raw_input('client:') client.send(inp) if inp =='exit': break
异步多线程服务端Server.py
#coding:utf-8 import SocketServer class MyServer(SocketServer.BaseRequestHandler): def setup(self): pass def handle(self): # print self.request,self.client_address,self.server #self.request = socket # conn = self.request conn.send('hello.') flag = True while flag: data = conn.recv(1024) print data if data =='exit': flag = False conn.send('asd') conn.close() def finish(self): pass if __name__ == '__main__': server = SocketServer.ThreadingTCPServer(('127.0.0.1',9999),MyServer) server.serve_forever()
socket 上传文件
#!/usr/bin/env python #coding:utf-8 import SocketServer import os class MyServer(SocketServer.BaseRequestHandler): def handle(self): base_path = 'G:/temp' conn = self.request print 'connected...' while True: pre_data = conn.recv(1024) &n 7fe8 bsp;#获取请求方法、文件名、文件大小 cmd,file_name,file_size = pre_data.split('|') #已经接收文件的大小 recv_size = 0 #上传文件路径拼接 file_dir = os.path.join(base_path,file_name) f = file(file_dir,'wb') Flag = True while Flag: #未上传完毕, if int(file_size)>recv_size: #最多接收1024,可能接收的小于1024 data = conn.recv(1024) recv_size+=len(data) #上传完毕,则退出循环 else: recv_size = 0 Flag = False #写入文件 f.write(data) print 'upload successed.' f.close() instance = SocketServer.ThreadingTCPServer(('127.0.0.1',9999),MyServer) instance.serve_forever() server
相关文章推荐
- python 读书笔记(2)算法的渐进分析
- 几本python书籍
- Python通过thrift 操作hbase
- python ATM取款机----运维开发初学(上篇)
- python ATM取款机----运维开发初学(下篇)
- Python 的内置函数__import__
- python 异常处理
- python小程序:备份文件
- leetcode第23题——***Merge k Sorted Lists
- Python学习中的tips(一)
- python绘图:matplotlib和pandas的应用
- windows下使用pycharm配置python的virtualenv环境
- Ubuntu下Python音频播放处理库--安装总结
- Python学习笔记(一)
- Python list reverse
- 递归思想-汉诺塔解法
- Python3.5 Django1.9.2常用命令
- python小白-day7 socket初识
- SublimeText3中python控制台不显示中文解决办法
- 爬虫网页编码及网页内容乱码处理