标签:rtu erro ted send 转义 设备 std tcp comm
#define _WINSOCK_DEPRECATED_NO_WARNINGS #include<WINSOCK2.H> #include<STDIO.H> #include<iostream> #include<string> #include <thread> #include <mutex> using namespace std; #pragma comment(lib, "ws2_32.lib") int main() { WORD sockVersion = MAKEWORD(2, 2); WSADATA data; if (WSAStartup(sockVersion, &data) != 0) { return 0; } int i = 0; while (true) { std::cout << ++i << std::endl; SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sclient == INVALID_SOCKET) { printf("invalid socket!"); return 0; } sockaddr_in serAddr; serAddr.sin_family = AF_INET; serAddr.sin_port = htons(2115); serAddr.sin_addr.S_un.S_addr = inet_addr("192.168.1.100"); if (connect(sclient, (sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR) { //连接失败 printf("connect error !"); closesocket(sclient); return 0; } // 和设备通讯时,要注意起止字符 // \x2是ASKII的通用转义格式 std::string sdata("\x002set parameter 1\x003"); const char * sendData; sendData = sdata.c_str(); int sta = send(sclient, sendData, strlen(sendData), 0); if (sta == -1) { std::cout << "send failed !" << std::endl; } char recData[255]; int ret = recv(sclient, recData, 255, 0); if (ret>0) { recData[ret] = 0x00; std::string result(recData); } closesocket(sclient); } WSACleanup(); return 0; }
标签:rtu erro ted send 转义 设备 std tcp comm
原文地址:https://www.cnblogs.com/alexYuin/p/9267685.html