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

摘要:
self.host=hostself.port=port#-----------------------------------------------------------------------defrun_服务器(self):self。port)sckt.listen(5)“”连接库“”“engine=sqlalchemy.create_engine('mssql+pyodbc:

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编程之三:模拟数据库循环发布数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用burpsuits暴力破解登陆界面html使用代码大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python爬虫(二十) select方法

有时候需要css选择器 1、通过标签名查找: <style type="text/css"> p{ background-color:pink; } </style> <body> <div class="box"> <p&...

filter 以及 orderBy的使用

filter用于关键字过滤操作,orderBy用于排序操作,运行界面如下: 点击标题Name与Email实现排序功能,输入框中输入关键字进行过滤,同时实现根据关键字进行过滤后进行排序操作: ng-repeat="user in users | filter:keyword | orderBy:sortField:reverse" index.html &...

selenium xpath高级语法

# xpath 使用路径表达式来匹配xml文档或html文档中的节点或节点集, # 这个路径表达式,和我们常见的文件夹路径有点像 # xpath 的标准语法 //tagname[@属性=''] # @后边可以跟任意属性,只要这个元素有就可以 # //a[@href='http://t.zoukankan.com/checkwork/manage']/i[...

Centos 7 配置邮件发送

一、环境   系统:centos 7   sendmail:sendmail.x86_64 0:8.14.7-5.el7   mailx版本:mailx-12.5-19.el7.x86_64 二、软件安装:   1、安装 sendmail     #: yum -y install sendmail   2、安装mailx     # yum -y ins...

php redis 基础操作 Thinkphp 直接套用

/*1.Connection*/ $redis = new Redis(); $redis->connect('127.0.0.1',6379,1);//短链接,本地host,端口为6379,超过1秒放弃链接 $redis->open('127.0.0.1',6379,1);//短链接(同上) $redis->pconnect('...

python使用关键字爬取url

python网路爬虫 --------- 使用百度输入的关键字搜索内容然后爬取搜索内容的url 开发环境:windows7+python3.6.3 开发语言:Python 开发工具:pycharm 第三方软件包:需安装lxml4.0,如果只安装lxml会出错,要需要lxml中的etree 废话不多说,贴上代码: 爬取数据保存以TXT格式保存,等会尝试使用E...