windows的一个socket 客户端程序
windows的一个socket 客户端程序
#include <iostream> #include <WinSock2.h> #include <WS2tcpip.h> #include <chrono> #include <thread> // 链接库 #pragma comment(lib, "Ws2_32.lib") int main() { // 初始化 Winsock WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { std::cerr << "Failed to initialize Winsock\n"; return 1; } // 创建套接字 SOCKET client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (client_socket == INVALID_SOCKET) { std::cerr << "Failed to create socket\n"; WSACleanup(); return 1; } // 设置服务器地址 sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_port = htons(9000); inet_pton(AF_INET, "192.168.21.49", &server_addr.sin_addr); // 连接到服务器 if (connect(client_socket, reinterpret_cast<SOCKADDR*>(&server_addr), sizeof(server_addr)) == SOCKET_ERROR) { std::cerr << "Failed to connect to server\n"; closesocket(client_socket); WSACleanup(); return 1; } // 每隔1秒发送一次消息 while (true) { //const char* message = "hello world"; //if (send(client_socket, message, strlen(message), 0) == SOCKET_ERROR) { // std::cerr << "Failed to send message\n"; // closesocket(client_socket); // WSACleanup(); // return 1; //} //std::cout << "Message sent: " << message << std::endl; //std::this_thread::sleep_for(std::chrono::seconds(3)); // 等待 N 秒 // 每隔 n 秒发送一次数据 std::string binaryData = "\x5F\x0F"; // 二进制数据流 "0101 1111 0000 1111" // 发送数据 int bytesSent = send(client_socket, binaryData.c_str(), binaryData.length(), 0); if (bytesSent == SOCKET_ERROR) { std::cerr << "Failed to send data: " << WSAGetLastError() << std::endl; closesocket(client_socket); WSACleanup(); return 1; } std::cout << "Sent " << bytesSent << " bytes of data." << std::endl; // 等待1秒 std::this_thread::sleep_for(std::chrono::seconds(1)); } // 关闭套接字 closesocket(client_socket); WSACleanup(); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2023-04-07 oracle, mysql, clickhouse创建表的DDL语句参考
2013-04-07 STL学习笔记-- map