首页 > 系统相关 >windows的一个socket 客户端程序

windows的一个socket 客户端程序

时间:2024-04-07 14:12:53浏览次数:30  
标签:addr lib windows 客户端程序 include 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;
}

 

标签:addr,lib,windows,客户端程序,include,socket
From: https://www.cnblogs.com/music-liang/p/18118920

相关文章

  • linux 的一个socket 客户端程序
    linux的一个socket客户端程序 #ifndef__TCP_CLIENT_TEST_1__#define__TCP_CLIENT_TEST_1__#include<iostream>#include<cstring>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>intmain(){constchar*s......
  • windows 环境下启动多个tomcat
    在Windows环境下面测试tomcat集群时,由于在环境变量中配置了catalina_home,导致每次启动都会走默认的配置,无法启动多个tomcat 修改方法直接修改startup.bat文件,设置CATALINA_HOME默认值。设置成tomcat安装路径即可setCATALINA_HOME=D:\programs\tomcat-cluster\apache-tomcat-8......
  • FastNat外网访问 Windows 3389 远程桌面
    概述Windows系统自带3389端口的远程桌面,无需额外安装任何软件即可使用,广泛用于远程办公场景。当电脑处于内网时,从外网是无法直接访问的,可通过安装路由侠实现从外对内访问,本文介绍具体的实现步骤。一,内网电脑设置1,首先在被访问的电脑的开始菜单中找到【设置】,点击进去。 2......
  • 十分钟学会WebSocket
    一、WebSocket简介WebSocket是一种在客户端和服务器之间实现双向通信的网络协议。它通过在单个TCP连接上提供全双工通信功能,使得服务器可以主动向客户端推送数据,而不需要客户端发起请求。 二、WebSocket的工作原理1.WebSocket的握手过程和HTTP有所不同。客户端通过发送特定......
  • websocket实践
    文章目录背景WebSocketAPI使用场景优点实例步骤1:设置WebSocket服务器步骤2:创建客户端HTML页面步骤3:测试WebSocket通信注意事项实际操作参考资料WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得浏览器和服务器只需建立一个连接,就可......
  • JetBrains CLion 2024.1 (macOS, Linux, Windows) 发布 - C 和 C++ 跨平台 IDE
    JetBrainsCLion2024.1(macOS,Linux,Windows)-C和C++跨平台IDE请访问原文链接:JetBrainsCLion2024.1(macOS,Linux,Windows)-C和C++跨平台IDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsCLion-C和C++跨平台IDE用于强大语言的......
  • JetBrains WebStorm 2024.1 (macOS, Linux, Windows) - 最智能的 JavaScript IDE
    JetBrainsWebStorm2024.1(macOS,Linux,Windows)-最智能的JavaScriptIDE请访问原文链接:JetBrainsWebStorm2024.1(macOS,Linux,Windows)-最智能的JavaScriptIDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsWebStorm-最智能的JavaScri......
  • JetBrains RubyMine 2024.1 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE
    JetBrainsRubyMine2024.1(macOS,Linux,Windows)-最智能的Ruby与RailsIDE请访问原文链接:JetBrainsRubyMine2024.1(macOS,Linux,Windows)-最智能的Ruby与RailsIDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsRubyMine-最智能的Ru......
  • JetBrains Rider 2024.1 (macOS, Linux, Windows) - 快速且强大的跨平台 .NET IDE
    JetBrainsRider2024.1(macOS,Linux,Windows)-快速且强大的跨平台.NETIDE请访问原文链接:JetBrainsRider2024.1(macOS,Linux,Windows)-快速且强大的跨平台.NETIDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsRider-快速且强大的跨平台......
  • JetBrains PyCharm 2024.1 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE
    JetBrainsPyCharm2024.1(macOS,Linux,Windows)-面向专业开发者的PythonIDE请访问原文链接:JetBrainsPyCharm2024.1(macOS,Linux,Windows)-面向专业开发者的PythonIDE,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsPyCharm-面向专业开发......