本人用的是 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;
}