1 Star 0 Fork 1

jxva/基于P2P模式的联机雷霆战机

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
udpclient.h 1.89 KB
一键复制 编辑 原始数据 按行查看 历史
Cverse 提交于 2023-03-07 10:42 . 添加项目文件。
#ifndef UDPCLIENT_H
#define UDPCLIENT_H
#pragma once
#include<winsock2.h>
#include<windows.h>
#include <Shlobj.h>
#include <tchar.h>
#include<time.h>
#include<string>
#include<thread>
#include<iostream>
#include<QDebug>
using namespace std;
#pragma warning(disable:4996)
#pragma comment(lib,"ws2_32.lib")
#define SBUF_SIZE 32 //发送缓存的大小
#define RBUF_SIZE 32 //接受缓存的大小
#define pport 53377 //peerport:用来两台主机交流时的socket的port
class point {
public:
int x;
int y;
point() {}
point(int a, int b) :x(a), y(b) {}
~point() {}
};
class UDPClient
{
public:
UDPClient();
int cport; //用于创建客户端嵌套字的端口
//写data到缓冲数组
void Send(point x);
//从缓冲数组中读数据
point Rece();
//往peer客户端发送sdata内的数据
void SendData();
//获取peer发来的数据到rdata
void ReceData();
//构造函数
UDPClient(char* ip, int port);
//析构函数
~UDPClient();
private:
SOCKADDR_IN sersin; //服务器的socket地址
SOCKET cli; //客户端用于交流的套接字
SOCKADDR_IN peer; //另一个客户端的socket地址
char* rdata; //直接与socket传输交互的数组
char* sdata; //直接与socket传输交互的数组
char* rdata_; //直接与程序交互的缓冲数组
char* sdata_; //直接与程序交互的缓冲数组
bool srejoin; //控制是否继续发rejoin包
int sinlen; //SOCKADDR_IN类型长度
//请求版本协议(socket的前提)
int Wsa();
//创建客户端与其他方交流的套接字
SOCKET CreateSocketUDP();
//往服务器发送数据
void SendToSer();
//与服务器交流获得另一个客户端的socket地址
SOCKADDR_IN TalkServer();
//接收socket信息
void ReceSOCKADDR_IN();
//绑定peer到cli
void Connect();
};
#endif // UDPCLIENT_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/jxva/VirusCombat.git
git@gitee.com:jxva/VirusCombat.git
jxva
VirusCombat
基于P2P模式的联机雷霆战机
master

搜索帮助