GHOX 2022-04-27 13:15 采纳率: 66.7%
浏览 244
已结题

C++ 如何进行 SOCKET 跨网段联机

本人用的是 DEV-C++ (很尬,别笑),曾经研究过 SOCKET 局域网内的联机( 比如说 192.168.1.1 和 192.168.1.2 联机 ),现在我想了一下,有没有办法可以让 不同网段 的电脑进行联机( 比如说 192.168.1.1 和 192.168.2.2 联机 )?还是说不用改代码也可以联机?

#include<WINSOCK2.H>

#include<bits/stdc++.h>

using namespace std;

#define ser "192.168.9.3" //填写客户端的 IP 地址  <<< 难道说这里不在同局域网内也行嘛???

#define port 5150 //端口号 干啥的我也不知道 

#pragma comment(lib, "ws2_32.lib")

int main()
{
    WSADATA data;
    
    WSAStartup(0x0202 , &data);
    
    //创建套节字 
    
    SOCKET sclient = socket(AF_INET /* 使用 TCP/IP 协议簇 */ , SOCK_STREAM ,  IPPROTO_TCP);
    
    SOCKADDR_IN server;
    
    memset(&server , 0 , sizeof(server) ); //初始化套节字
    
    server . sin_family        = PF_INET; // 使用 TCP/IP 协议簇 
    
    server . sin_port          = htons(port); //服务器端口号
    
    server . sin_addr . s_addr = inet_addr(ser); // 指向 客户端 的 IP 地址
    
    connect(sclient , (struct sockaddr *) &server , sizeof(SOCKADDR_IN));
    
    while(true)
    {
        cout<<"(*out 退出)发送信息 : ";
        
        char message[100000];
        
        gets(message); 
        
        if ( message[0] == '*' 
        and  message[1] == 'o' 
        and  message[2] == 'u' 
        and  message[3] == 't'
           )

            break;

        send(sclient , message , strlen(message) , 0); // 发送 
    }
    
    closesocket(sclient);  // 释放连接 
    
    WSACleanup();
    
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 春休夏末 2022-04-27 15:26
    关注

    你的问题 等价于 如何外网通信 可以参考这篇文章
    https://blog.csdn.net/qq_40217173/article/details/96146742?spm=1001.2014.3001.5502

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月8日
  • 已采纳回答 4月30日
  • 创建了问题 4月27日

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算