2023年7月15日发(作者:)
C++UDP接收和发送class UDP {public: UDP() { RecvAddrSize = sizeof(RecvAddr); int nResult = WSAStartup(MAKEWORD(2, 2), &wsaData); if (nResult != NO_ERROR) { std::cout << WSAGetLastError(); return; } RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); //设置服务器地址 _family = AF_INET; _port = htons(Port); _addr.s_addr = inet_addr("192.168.1.111"); int ret = bind(RecvSocket, (sockaddr *)&RecvAddr, sizeof(RecvAddr)); if (ret < 0) { perror("bind"); return; } } void sendDataToPython() {char temp[2000]; sprintf(temp, "insert into Flight_a({:}, cdata) values({:}, '{:}')", m_str, s_str, date_time); int flag = sendto(RecvSocket, temp, sizeof(temp), 0, (sockaddr*)&RecvAddr, sizeof(RecvAddr)); std::cout << flag; } } void recvDataToLocal() { memset(RecvBuf, '0', sizeof(RecvBuf)); printf("recv a datagram to "); int nResult = recvfrom(RecvSocket, RecvBuf, BufLen, 0, (SOCKADDR *)&RecvAddr, &RecvAddrSize); //发送完成,关闭Socket printf("%sn", RecvBuf); } ~UDP() { closesocket(RecvSocket); WSACleanup(); }private: WSADATA wsaData;//初始化 SOCKET RecvSocket; sockaddr_in RecvAddr, sendAddr;//服务器地址 char RecvBuf[10240] = { 0 };//发送数据的缓冲区 int Port = 4000;//服务器监听地址 int BufLen = 10240;//缓冲区⼤⼩ int RecvAddrSize = 0; //初始化SocketAddr的⼤⼩};
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689408645a243320.html
评论列表(0条)