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

建立 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:[email protected]‘)
        """取开盘价"""
        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

时间: 2024-10-18 08:26:53

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

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

上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的样例,就是同意多个人同一时候一起聊天.每一个人发送的消息全部人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.例如以下图: 图来自:http://www.ibm.com/developerworks/linux/tu

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

原文:Python Socket 编程--聊天室示例程序 上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 图来自:http://www.ibm.com/de

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

python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参数代表地址家族,可为AF_INET或AF_UNIX.AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的进程间通信. type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字). 2. 第二步是将socket绑定到指定地址.这

python/socket编程之粘包

python/socket编程之粘包 粘包: 只有TCP有尿包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提取数据,当然也有可能是3k或者多k提取数据,也就是说,应用程序是不可见的,因此TCP协议是面来那个流的协议,这也是容易出现粘包的原因而UDP是面向笑死的协议,每个UDP段都是一条消息,应用程序必须以消息为单位提取数据,不能一次提取任一字节的数据,这一点和TCP是很同的.怎样定义消息呢?认为对方一次

python socket编程 TCP

python socket编程 TCP by wuxy server.py import socket import commands BUF_SIZE = 1024 server_addr = ('127.0.0.1',8888) server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.bind(se

python socket编程 UDP

python socket编程 UDP by 伍雪颖 server.py import socket BUF_SIZE = 1024 server_addr = ('127.0.0.1',8888) server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server.bind(server_addr) while True: print "waiting for data" data,client_addr = server.

【转】一个简单的python socket编程

原文链接:转载:一个简单的python socket编程 python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参数代表地址家族,可为AF_INET或AF_UNIX.AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的进程间通信.      type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRA

PYTHON SOCKET编程简介

原文地址: PYTHON SOCKET编程详细介绍 Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 下面讲的是Socket模块功能 1.Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号(默认为0)来创建套接字. socket类型 描述 socke

[Python_7] Python Socket 编程

0. 说明 Python Socket 编程 1. TCP 协议 [TCP Server] 通过 netstat -ano 查看端口是否开启 # -*-coding:utf-8-*- """ TCP 协议的 Socket 编程,Server 端 Server 端绑定到指定地址,监听特定的端口,接受发来的连接请求 """ import threading import socket import time class CommThread(thre