之前看到的一些博客主要分享的是linux环境下的c++和python的UDP通信,虽然有基础的可以很快的上手,但是对于小白来说用起来还是不太方便,所以在这里我再写一下win环境下的通信,附带源码。
本文的使用背景是,我使用C++搭建了一个飞机模型文件,但是飞机的航迹无法实时显示,给调试带来了困难。所以使用python中pygame库的画图功能,实时显示飞机位置,打印飞机航迹。但是C++的数据如何传输给python呢?这就用到了c++和python之间的UDP传输。(我深刻同意另一位博主的话,凡是和文件有关联的我都不喜欢)。
WIN下UDP发送
废话少说,先来看win下的代码,这里主要使用了两个函数,一个是UDPSend,另一个是UDPInfoSend。
UDPSend的功能就是调用UDP发送数据,UDPInfoSend是我用来写入需要发送数据的。没有耐心的小伙伴可以直接复制粘贴UDPSend使用,了解其使用方式就可以了,有兴趣的可以在附录里了解下原理。关于UDPSend的使用原理在下文会提到。
对了,不要忘了加入win下的socket头文件,他们是:
#include <time.h>
#include <stdlib.h>
#include <WinSock2.h>
#include <vector>
#include <cstdio>
#include <stdio.h>
#include <iostream>
源代码如下:
void UDPSend(char* p, int size)
{
//创建套接字
WORD wVersionRequested;
WSADATA wsaData;