python是轻量级语言吗_python socket 轻量级服务器详解

使用非阻塞加多线程的方式,轻松实现python网络服务器框架。 工作总结

由于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模块是我进行数据的相关处理的逻辑,注释掉了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值