python多线程
2016-07-25 15:59
579 查看
#两个线程一个发心跳,一个往打印机发数据#
#!/usr/local/bin/python2.7
# encoding: utf-8
import threading
import socket
import time
import logging
import sys
from logging.handlers import TimedRotatingFileHandler
import ConfigParser
'''
Created on 2016年07月7日
@author: wuxiaobing
Mail:2683904575@qq.com
history:
V1.0增加多线程机制,一个线程是和打印机做心跳连接、另一个线程发数据到打印机。(2016-07-15)
V1.1将所有配置文件用模块ConfigParser整理到一个配置文件,按配置文件读写方式处理。(2016-07-25)
'''
conf = ConfigParser.ConfigParser()
conf.read("D:\\test.conf")
HOST = conf.get("section1", "ip")
PORT = int(conf.get("section1", "port"))
time1 = conf.get("section2", "t1")
time2 = conf.get("section2", "t2")
def lan_send_data_printer():
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
count=0
while(1):
count=count+1
TCPClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
TCPClient.connect(ADDR)
except socket.error, e:
print "Connection error: %s" % e
continue
looger.info(u"V1.1&正在运行第 %s 次" % str(count))
TCPClient.close()
print HOST+"--->"+"threading1"+"--->"+u"发心跳"+" "+str(count)+u"次"
time.sleep(int(time1))
def loop2(title,txt):
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
countt=0
while (1):
countt=countt+1
TCPClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
TCPClient.connect(ADDR)
except socket.error, e:
print "Connection error: %s" % e
print u"亲,打印机IP是不被人占了或没开打印机?"
continue
looger.info(u"V1.1&正在运行第 %s 次" % str(countt))
TCPClient.send(txt)
TCPClient.close()
print HOST+"--->"+"threading2"+"--->"+u"打印数据"+" "+str(countt)+u"次"
time.sleep(int(time2))
if __name__ == '__main__':
looger = logging.getLogger('threading2')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
LogHandLer=TimedRotatingFileHandler(r'E:\countLAN.log',when="midnight")
LogHandLer.suffix="%Y%m%d-%H%M.log"
LogHandLer.setFormatter(formatter)
looger.addHandler(LogHandLer)
looger.setLevel(logging.INFO)
f2 = open(r"D:\Users\Out123.spc",'rb')
lines2 = f2.read()
f2.close()
t = threading.Thread(target=lan_send_data_printer)
t2=threading.Thread(target=loop2,args=("lines2",lines2))
t.start()
t2.start()
#!/usr/local/bin/python2.7
# encoding: utf-8
import threading
import socket
import time
import logging
import sys
from logging.handlers import TimedRotatingFileHandler
import ConfigParser
'''
Created on 2016年07月7日
@author: wuxiaobing
Mail:2683904575@qq.com
history:
V1.0增加多线程机制,一个线程是和打印机做心跳连接、另一个线程发数据到打印机。(2016-07-15)
V1.1将所有配置文件用模块ConfigParser整理到一个配置文件,按配置文件读写方式处理。(2016-07-25)
'''
conf = ConfigParser.ConfigParser()
conf.read("D:\\test.conf")
HOST = conf.get("section1", "ip")
PORT = int(conf.get("section1", "port"))
time1 = conf.get("section2", "t1")
time2 = conf.get("section2", "t2")
def lan_send_data_printer():
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
count=0
while(1):
count=count+1
TCPClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
TCPClient.connect(ADDR)
except socket.error, e:
print "Connection error: %s" % e
continue
looger.info(u"V1.1&正在运行第 %s 次" % str(count))
TCPClient.close()
print HOST+"--->"+"threading1"+"--->"+u"发心跳"+" "+str(count)+u"次"
time.sleep(int(time1))
def loop2(title,txt):
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
countt=0
while (1):
countt=countt+1
TCPClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
TCPClient.connect(ADDR)
except socket.error, e:
print "Connection error: %s" % e
print u"亲,打印机IP是不被人占了或没开打印机?"
continue
looger.info(u"V1.1&正在运行第 %s 次" % str(countt))
TCPClient.send(txt)
TCPClient.close()
print HOST+"--->"+"threading2"+"--->"+u"打印数据"+" "+str(countt)+u"次"
time.sleep(int(time2))
if __name__ == '__main__':
looger = logging.getLogger('threading2')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
LogHandLer=TimedRotatingFileHandler(r'E:\countLAN.log',when="midnight")
LogHandLer.suffix="%Y%m%d-%H%M.log"
LogHandLer.setFormatter(formatter)
looger.addHandler(LogHandLer)
looger.setLevel(logging.INFO)
f2 = open(r"D:\Users\Out123.spc",'rb')
lines2 = f2.read()
f2.close()
t = threading.Thread(target=lan_send_data_printer)
t2=threading.Thread(target=loop2,args=("lines2",lines2))
t.start()
t2.start()
相关文章推荐
- Python渗透测试框架:PytheM
- python 生成ssh秘钥对
- DAY10:leetcode #22 Valid Parentheses
- Python——使用ElementTree解析AndroidManifest.xml文件
- Python开发【第一章】:简介和入门
- 利用python解析手机通讯录
- 数组剔除元素后的乘积Python解法
- windows下使用pip安装python的第三方lxml库
- 用命令行运行python所有的unittest文件
- python学习之wxPython 报错
- 跟我学Python系列 -Map()函数的理解
- python中range和xrange的用法与区别
- MySQL:用python操作MySQL
- pythonparse 配置文件读取
- python2.7安装numpy报错:is not a supported wheel on...
- python2 和python3共存下问题
- Python 类货币四舍五入规则
- Python基础知识
- python布尔运算记录
- 我的python学习--第四天