建立 socket,先运行服务器,再运行客户端,建立连接后服务器从本地数据库调数据一截一截地发送给客户端,客户端接受数据绘图模拟分时图

  • 1.socket
# -*- coding: utf-8 -*-
"""socket 模块"""
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.server
# -*- coding: utf-8 -*-
"""服务器端单独一个文件"""
import sys
sys.path.append('C:\WinPython-32bit-3.5.1.3\myWorkSpace1')
import f1
F1 = f1.sckt()
F1.run_server()
  • 3.client
# -*- coding: utf-8 -*-
"""客户端单独一个文件"""
import f1
F1 = f1.sckt()
import matplotlib.pylab as plt
opn = []
for i in range(0, 1000):
opn.append(F1.run_client())
plt.plot(opn)
plt.grid(True, axis = 'both')
"""必须有 pause,不然会卡住"""
plt.pause(0.1) """先运行服务器,在运行客户端"""
  • 4.runtimeplot

Python socket编程之四:模拟分时图的更多相关文章

  1. Python Socket 编程——聊天室示例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...

  2. Python Socket 编程——聊天室演示样例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket ...

  3. 第九章:Python高级编程-Python socket编程

    第九章:Python高级编程-Python socket编程 Python3高级核心技术97讲 笔记 9.1 弄懂HTTP.Socket.TCP这几个概念 Socket为我们封装好了协议 9.2 cl ...

  4. python/socket编程之粘包

    python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提 ...

  5. PYTHON SOCKET编程简介

    原文地址: PYTHON SOCKET编程详细介绍   Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 Soc ...

  6. python socket编程笔记

    用python实现一个简单的socket网络聊天通讯 (Linux --py2.7平台与windows--py3.6平台) 人生苦短之我用Python篇(socket编程) python之路 sock ...

  7. [Python_7] Python Socket 编程

    0. 说明 Python Socket 编程 1. TCP 协议 [TCP Server] 通过 netstat -ano 查看端口是否开启 # -*-coding:utf-8-*- "&q ...

  8. Python Socket 编程示例 Echo Server

    简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...

  9. python socket编程入门(编写server实例)+send 与sendall的区别与使用方法

    python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...

随机推荐

  1. Apache Thrift

    Baidu Thrift  Google Thrift Apache Thrift - 可伸缩的跨语言服务开发框架

  2. How to configure SRTM elevations in WorldWind WMS

    In this thread I will try to explain how to serve SRTM elevations using NASA WorldWind WMS. ! Import ...

  3. Got a packet bigger than 'max_allowed_packet' bytes

    昨天用导入数据的时候发现有的地方有这个错误.后来才发现我用RPM包装的MYSQL配置文件里面有old_passwords=1去掉就可以了. Got a packet bigger than ‘max_ ...

  4. JS 之BOM

    BOM的核心对象是window,表示浏览器的一个实例. 使用框架时,window.top对象指顶层框架,也就是浏览器窗口.window.parent对象指包含当前窗口的框架,也就是父框架.window ...

  5. python数字图像处理(12):基本图形的绘制

    图形包括线条.圆形.椭圆形.多边形等. 在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了. 1.画线条 函数调用格式为: skimage.draw.line(r1,c1,r2,c ...

  6. android Notification 的使用

    最近一直在研究 android ,并一边研究一边做应用.其中遇到了把程序通知常驻在 Notification 栏,并且不能被 clear 掉(就像android QQ一样)的问题.经过研究实现了其功能 ...

  7. [CareerCup] 7.4 Implement Multiply Subtract and Divide 实现乘法减法和除法

    7.4 Write methods to implement the multiply, subtract, and divide operations for integers. Use only ...

  8. Metasploit_01_信息搜集技术

    信息搜集技术 姓名: 谈愈敏 学号: 20135220 日期: 2016.9.7 攻击机:135220-V.BT5, msf 靶 机:135220-V.W2k3_Sploitable 一.实验过程概述 ...

  9. JS实现星级评价

    说明: 本方法采用了Jquery库,暂时检测兼容IE8版本.本示例的2种颜色的星星都是放入了一张png图片当中,当然还有其他的一些实现思路.本示例展示的情况是当前页面只有一个星级评价的情况. 思路: ...

  10. 使用git提交本地代码到github

    1. 客户端选择 git在本地,有多种客户端可供选择,比如eclipse的插件EGit,还有git的官方客户端: Git  Bash, Git CMD, Git GUI等. 推荐使用官方的Git Ba ...