IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 黑科技 - 3 :DEV - C++ 不同主机下的联机 -> 正文阅读

[网络协议]黑科技 - 3 :DEV - C++ 不同主机下的联机


DEV - C++ 不同主机下的联机


前言

或许很多人认为 DEV-C++ 只能做单人游戏对吧?也许很少人知道 DEV-C++ 也可以联机!!!

其实本人在研究联机的路上也遭遇了许许多多的困难,最主要的就是网上粘下来的代码编译不了,运行不了,联不上机的因素,在这里我感谢两位 ZhoumyReturn_ ,他们帮我解决了上述的几个问题


TCP/IP 协议是什么

要实现不同主机下的连接,要了解 TCP/IP 协议:

TCP/IP

“Transmission Control Protocol / Internet Protocol ”的简称

即就是 传输控制协议/网际协议

指能够在多个不同网络间实现信息传输的协议簇。

TCP/IP协议是Internet最基本的协议。

其中应用层的主要协议有Telnet、FTP、SMTP等。

是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层。

传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享

具体的更多关于 TCP/IP 的资料,大家可以 百度百科


如何实现连接

我们把连接的两个程序分为 服务端客户端 , 一般情况下,我们都是从 服务端客户端 发送信息的,则 服务端 要获取 客户端IP地址 , 这里所说的 IP地址 就是指 IPV4 , 可以通过 cmd 输入 ipconfig 来获取 (没连网的就别说了)。

还有一个是 端口号 ,至于这个端口号,我也不是太清楚,大家可以使用 百度百科 学习 …


版本 - 1

服务端

#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;
}

接收端(客户端)

#include<WINSOCK2.H>

#include<bits/stdc++.h>

using namespace std;

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

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

int main()
{
	WSADATA data;
	
	WSAStartup(0x0202 , &data);
	
	//创建套节字 
	
	SOCKADDR_IN server;
	
	server . sin_family        = AF_INET; // 使用 TCP/IP 协议簇 
	
	server . sin_port          = htons(port); //服务器端口号 
	
	server . sin_addr . s_addr = htonl(INADDR_ANY); // 指向 客户端 的 IP 地址
	
	int sizes = sizeof(SOCKADDR_IN);
	
	SOCKET slisten = socket(AF_INET /* 使用 TCP/IP 协议簇 */ , SOCK_STREAM ,  IPPROTO_TCP);
		
	bind(slisten , (struct sockaddr * ) &server , sizeof(SOCKADDR_IN));
	
	listen(slisten , 1);
	
	SOCKADDR client;
	
	SOCKET sclient = accept(slisten , (struct sockaddr * ) &client , &sizes); // 等待连接
	
	printf("成功连接上服务端\n");
	
	while(true) 
	{
		char message[100000];
		
		int len = recv(sclient, message, 1024 /* 缓冲区大小 */ , 0);
		
		if(len == -1 or len == 0) break;
		
		message[len] = '\0';
		
		printf("收到服务端信息 [len = %d bytes] : \"%s\"\n",len,message);
	}
	
	printf("服务端断开了与你的连接\n");
	
	while(1);
	
	return 0;
}

使用说明

1 、 将 客户端 放置在被发送的电脑上 , 将 服务端 放置在主动发送的电脑上,在 服务端代码 里的 第四行 “#define ser “192.168.9.3” //填写客户端的 IP 地址 ” 改成 客户端所存放电脑IP地址

2 、先将 客户端 开启后,才能开启 服务端 。 因为 客户端 开启后是出于监听状态,而 服务端 开启后则是在 1秒 内发送请求连接信息,1秒后便取消请求,所以必须要先开启 客户端 ,再开启 服务端


以后我会持续更新关于 DEV-C++ 联机的程序,以帮助大家利用联网制作更多有用的东西 “勿整蛊!!”

关于DEV-C++的黑科技系列,以后会持续更新,大家可以收藏作为资料使用!


  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:34:09  更:2021-08-03 11:36:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:20:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码