Python学习--threading应用和socket应用
2017-06-29 14:13
267 查看
Python学习–threading应用和socket应用
代码示例:
代码示例:
#!/usr/bin/python import threading import random from time import ctime, time, sleep from socket import * #TCP info HOST = '10.1.252.95' PORT = 6688 ADDR = (HOST, PORT) BUFFSIZE = 1024 #thread numbers THREAD_NUMS = 10 #send frequency SEND_FREQ = 10000 #send info send_info_list = ['CidUserQuery {1001} {ME60-X16-ZJZ01-63201001000000@iptv} {}', 'CidUserQuery4NAT {1001} {} {60.11.69.53} {} {} ', 'CidUserQuery {1002} {} {10.1.224.3}', 'CidUserQuery {1002} {} {10.1.224.4}', 'CidUserQuery {1002} {10.1.224.5}', 'CidUserQuery {1002} {10.1.224.5}', 'CiUserQuery {1002} {} {10.1.224.5}'] #work thread class class WorkThread(threading.Thread): def __init__(self, func, args, name): threading.Thread.__init__(self) self.func = func self.args = args self.name = name self.res = None #get result def get_result(self): return self.res #run thread def run(self): print 'run loop start at:\n', ctime() self.res = apply(self.func, self.args) print 'run loop end at:\n', ctime() #thread call-back function def thread_func(thread_name): print '%s begin.\n' % thread_name #sleep(random.random()*1000) com_with_server(thread_name) print '%s end.\n' % thread_name #init thread and run def run_thread(): start_time = time() print __name__, ' Start at:\n', ctime() #thread pool threads = [] #create work thread thread_nums = range(0, THREAD_NUMS) for i in thread_nums: thread_name = 'Thread[%d]' % i t = WorkThread(thread_func, (thread_name,), thread_func.__name__) threads.append(t) #run threads for i in thread_nums: threads[i].start() #wait thread end for i in thread_nums: threads[i].join() print __name__, ' End at:\n', ctime() end_time = time() print 'cost time:\n', (end_time - start_time) #communicate with tcp server def com_with_server(thread_name): for i in range(0, SEND_FREQ): try: #create client socket cli_sock = socket(AF_INET, SOCK_STREAM) #connect server cli_sock.connect(ADDR) #print '----2----\n' #sleep(random.random()*10) count = random.randint(0, len(send_info_list)-1) data = send_info_list[count] send_data = '%04d%s' % (len(data), data) print '%s send:[%s]\n' % (thread_name, send_data) #send info cli_sock.send(send_data) #receive info recv_data = cli_sock.recv(BUFFSIZE) print '%s recv:[%s]\n' % (thread_name, recv_data) cli_sock.close() except Exception, e: print 'Error:%s\n' % e cli_sock.close() #main if __name__ == '__main__': print 'main begin\n' run_thread() print 'main end\n'
相关文章推荐
- 重新学习python线程应用使用thread类,改写程序
- Python中socket和多线程的应用
- Python应用-[用Python实现一个socket echo程序 && tcp socket的几个关闭状态]
- python网络编程学习笔记(3):socket网络服务器
- Python Socket学习 - garfieldtom - 博客园
- 今天开始在这里写学习Python、应用Python的学习笔记
- Python学习笔记(4)-- 网络编程(1)-- socket
- python 网络编程学习: 2 SOCKET
- python网络编程学习笔记(3):socket网络服务器
- python网络编程学习笔记(5):socket的一些补充
- python threading 学习笔记
- Python模块学习 ---- threading 多线程控制和处理
- Python模块学习 ---- threading 多线程控制和处理
- python网络编程学习笔记(5):socket的一些补充
- python socket 学习(1)
- Python中socket和多线程的应用
- 最近在研究enigma2的代码,那叫个庞大,C/C++写中间件,上层应用全部用python实现,可以学习一下plugin的实现机制了.
- Python Socket 简单应用
- Python模块学习 ---- threading 多线程控制和处理
- Python socket编程学习