文档章节

python socket 轻量级服务器

quanwei9958
 quanwei9958
发布于 2015/04/25 23:05
字数 220
阅读 274
收藏 11

   由于Python天生的优点,特别适用于快速实现功能。    

#!/usr/bin/python2.7
import sys
import time
import socket
#import modbus
import threading
import select
class thread(threading.Thread):
	def __init__(self,sock):
		threading.Thread.__init__(self)
		#self.commond=modbus.modbus()
		self.sock=sock
	def run(self):
		time1=time.time()-10
		time2=time.time()
		try:
			while True:
				cr,cw,ce=select.select([self.sock],[],[self.sock],1)
				time2=time.time()
				if cr:#//can read
					stream=self.sock.recv(1024)
					if not stream:
						break
					#self.commond.parse(stream)
				if ce:
					break
				if time2-time1>10:#//10s write once
					#self.sock.send(self.commond.get_all_data_by_address(0x01))
					time1=time.time()
		except Exception as error:
			print(error)
		finally:
			self.sock.close()
			print('connect closed')	
		
if __name__=='__main__':
	sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
	sock.bind(('127.0.0.1',8000))
	sock.listen(0)
	thread_list=list()
	try:
		while True:
			s,ip=sock.accept()
			print('new connect :%s:%d'%(ip[0],ip[1]))
			t=thread(s)
			t.start()
			thread_list.append(t)
	finally:
		sock.close()
		for i in thread_list:
			i.sock.close()
		print('\b\blistening exit')


  一个轻量级服务器程序,modbus模块是我进行数据的相关处理的逻辑,注释掉了。



© 著作权归作者所有

共有 人打赏支持
quanwei9958

quanwei9958

粉丝 29
博文 79
码字总数 36250
作品 0
程序员
ubuntu14.04+Django1.7.1+nginx1.6+uwsgi2.0环境搭建

ubuntu下安装django1.7.1先安装pip sudo apt-get install pip 使用pip安装django sudo pip install Django (或者下载官方最新的django包,解压后执行sudo python setup.py install) 安装完...

niceguy_php
2014/12/22
0
0
tronado 源码框架分析

一. Tornado是什么? Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购的社交聚合网站FriendFeed的实时信息服务开发而来.Tornado由Python编写,是一款轻量级的Web服务器...

颓废的幻想者
2013/10/30
0
0
python --- 协程编程(第三方库gevent的使用)

1. 什么是协程?   协程(coroutine),又称微线程。协程不是线程也不是进程,它的上下文关系切换不是由CPU控制,一个协程由当前任务切换到其他任务由当前任务来控制。一个线程可以包含多个...

码农47
2017/11/19
0
0
20.python中socket基本编程--20130-06-01

python 编写server的步骤: 第一步是创建socket对象。调用socket构造函数。如: socket = socket.socket( family, type ) family参数代表地址家族,可为AFINET或AFUNIX。AFINET家族包括Inter...

quanpower
2013/06/01
0
0
python的Socket编程基础

下面一些是python网络编程基础知识,很少在项目中直接使用,都是用的twisted,gevent,tornado等网络框架.但是学习基础知识可以弄懂socket流程. python的socket模块的网络编程步骤和linux c基本一...

flyking
2013/10/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[雪峰磁针石博客]python3快速入门教程1 turtle绘图-2函数

菲波那契序列: >>> # Fibonacci series:... # the sum of two elements defines the next... a, b = 0, 1>>> while b < 10:... print(b)... a, b = b, a+b...112......

python测试开发人工智能安全
今天
0
0
java环境变量配置最正确的方式

原贴:https://blog.csdn.net/qq_40007997/article/details/79784711,十分详细,亲测有效

kitty1116
今天
0
0
49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
1
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部