PHP与Python间Socket通信代码片段,,PHP与Python间S
PHP与Python间Socket通信代码片段,,PHP与Python间S
PHP与Python间Socket通信代码片段,这不是完整的代码,而且代码还需要更多的改进。
服务器端Python代码
#coding:utf-8'''Socket 服务器端 常见的协议及端口(这些端口是由操作系统管理的) ftp-Data:20, ftp-Control:21 SSH:22, Telnet:23 SMTP:25, HTTP:80 POP3:110 IMAP:143 HTTPS:443'''import socket,threadingimport time,Queue''' 任务线程'''class TaskThread(threading.Thread): ''' 初始化 ''' def __init__(self,queue): threading.Thread.__init__(self) self.queue = queue ''' 执行线程 ''' def run(self): task = self.queue.get() #取出一项任务 self.doTask(task) self.queue.task_done() #完成任务信号 ''' 做任务 ''' def doTask(self,task): path = './task/'+task+'.txt' fp = open(path,'w') fp.write(task) fp.close()'''www.iplaypy.com'''def main(): #Socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建tcp socket s.bind(('localhost',9999))#绑定到9999 s.listen(5) #监听,但只能挂起5以下链接 #创建队列 queue = Queue.Queue() while True: client,addr = s.accept()#连接 addr = str(addr) print("从 %s 获取一个连接"%addr) #直接输出到控制台 timestr = time.ctime(time.time())+"\r\n" #时间羽化输出 strs = '现在是:'+timestr client.send(strs) #发送输数据 task = str(client.recv(1024)) cs = '%s 客户端返回的数据为:%s'%(addr,task) #接收客户端数据 print(cs) client.close() #任务 task = task.split('|') #将任务写入到队列中 for i in task: queue.put(i) #开始线程 for i in task: t = TaskThread(queue) t.setDaemon(True) #子线程随主线程一起退出 t.start() #启动线程 t.join(10) #保证每个线程运行,但只等10s queue.join() #等所有任务都处理后,再退出 if __name__ =='__main__': main()
客户端PHP代码
<?php/** * Socket PHP客户端 * */header ( 'Content-type:text/html;charset=utf8' );$host = 'tcp://localhost:9999';$fp = stream_socket_client ( $host, $errno, $error, 20 );if (! $fp){echo "$error ($errno)";} else{fwrite ( $fp, 'one|two|three' );while ( ! feof ( $fp ) ){echo fgets ( $fp ); #获取服务器返回的内容}fclose ( $fp );}
编橙之家文章,
相关内容
- Python工程图绘制编程函数基本应用源码,python源码,py
- 下载豆瓣小组的帖子并只看楼主的Python实现,豆瓣pyt
- 自动登陆Discuz论坛的通用python代码源码片段,,自动登陆
- python实现mssql里点数据集到AutoCAD的文本转换,,python实现
- python计算万年内的对称日代码,python计算万年,求对称日
- 基于web.py框架带提示的猜数字游戏,web.py猜数字,这是一
- python3.2循环单词求和功能,python3.2单词求和,是这一段基
- Python datetime计时程序的实现方法,pythondatetime,这个pyt
- 输出100以内的数字金字塔的形式显示方法,100金字塔
- Python工具火狐扩展打包,python火狐打包,这是一个关于火
评论关闭