python 接收事件转发

Posted qianbo_insist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 接收事件转发相关的知识,希望对你有一定的参考价值。

python 作为服务器端

python 作为事件服务器,使用udp 服务器,然后进行事件通信,如
1 写文件
2 传递给其他服务器
因为是脚本,所以可以随时修改,做到比较灵活

如何进行调用?可以在主程序启动时启动所有程序,包括python,调用外部程序的方式启动python服务。

from time import sleep
import socket


def main():
    # udp 通信地址,IP+端口号
    udp_addr = ('192.168.0.109', 7000)
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 绑定端口
    udp_socket.bind(udp_addr)

    # 等待接收对方发送的数据
    while True:
        recv_data = udp_socket.recvfrom(1024)  # 1024表示本次接收的最大字节数
        # 打印接收到的数据
        print("[From %s:%d]:%s" % (recv_data[1][0], recv_data[1][1], recv_data[0].decode("utf-8")))

if __name__ == '__main__':
    print("当前版本: ", __version__)
    print("udp server ")
    main()

测试客户端

package main

import (
	"fmt"
	"net"
)

func main() 
	conn, err := net.Dial("udp", "192.168.0.109:10000")
	if err != nil 
		fmt.Println("net.dial err:", err)
		return
	
	defer conn.Close()
	for i := 1;i<=100;i++ 
		result:=fmt.Sprintf("this is %d",i)
		fmt.Println(i)
		conn.Write([]byte(result))
	
	buf := make([]byte, 4096)
	n, err := conn.Read(buf)
	if err != nil 
		fmt.Println("conn.Read err:", err)
		return
	
	fmt.Println("server back:", string(buf[:n])) 

运行

改进

python 事件服务器 需要增加websocket 客户端来进行转发,这个需要再继续进行编写,
未完待续…

以上是关于python 接收事件转发的主要内容,如果未能解决你的问题,请参考以下文章

iOS触摸事件

将触摸事件从覆盖 UIView 转发到 UIWebView / 如何从代码将触摸事件发送到 uiwebview

集线器交换机路由器的区别

IP通信原理第十周

ALB学习笔记基于事件触发方式的串行通信接口数据接收案例

交换机的工作原理