Python socket编程之三:模拟数据库循环发布数据

Posted 佩雷尔曼的信徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python socket编程之三:模拟数据库循环发布数据相关的知识,希望对你有一定的参考价值。

1. f1.py

# -*- coding: utf-8 -*-
import socket
import struct
import sqlalchemy
import pandas
########################################################################
class sckt:
    #----------------------------------------------------------------------
    def __init__(self, host = \'192.168.1.3\', port = 12345):
        self.host = host
        self.port = port
    #----------------------------------------------------------------------
    def run_server(self):
        sckt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sckt.bind((self.host, self.port))
        sckt.listen(5)
        """连接库"""
        engine = sqlalchemy.create_engine(\'mssql+pyodbc://sa:123456@XiTongDSN\')
        """取开盘价"""
        Open = (pandas.read_sql(\'sh\', engine))[\'open\']
        i = 0
        while True:            
            connection, address = sckt.accept()
            if connection.recv(1024) == b\'Link\' and i < (len(Open) - 1):               
                """数据打包"""                
                connection.send(struct.pack(\'f\', Open[i]))
                i += 1
            else:
                connection.send(b\'Cut off the connection!\')
                connection.close()
    #----------------------------------------------------------------------
    def run_client(self, message = b\'Link\'):
        sckt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sckt.connect((self.host, self.port))
        sckt.send(message)
        """数据解包,注意 unpack 要求四字节,其用法为后接 [:4]"""
        Open = struct.unpack(\'f\', sckt.recv(1024)[:4])
        sckt.close()
        """返回开盘价,去格式的用法后接 [0]"""
        return Open[0]

2. f2.py

# -*- coding: utf-8 -*-
import sys
sys.path.append(\'D:/360data/重要数据/桌面\')
import f1
F1 = f1.sckt()
F1.run_server()
Open = []
for i in range(0, 99):
    Open.append(F1.run_client())
    print(Open)
360截图20160529043315101

以上是关于Python socket编程之三:模拟数据库循环发布数据的主要内容,如果未能解决你的问题,请参考以下文章

python编程入门之三:条件和循环

Python socket编程之四:模拟分时图

Python--网络编程-----socket编程示例--模拟ssh远程执行命令

Python--网络编程-----socket编程示例--打电话--加上链接循环

Python--网络编程-----socket编程示例--打电话--加上通讯循环

第六章 - 网络编程 - 1.简单的套接字通信/2.加上通信循环/3.bug修复/4.加上链接循环/5.模拟ssh远程执行命令