Нужно отправить пакет (под видом клиента) на сервер Minecraft PE и получить ответ. Нашел статью на вики, описывающую взаимодействия клиента и сервера, однако отправить нужный мне пакет (0x01) и получить ответ не получается. После отправки пакета с id 0x01 сервер просто не возвращает ответ.
Код который у меня получился:
#include <string>
#include <iostream>
#include "RakPeerInterface.h"
#include "MessageIdentifiers.h"
#include "BitStream.h"
#include "RakPeer.h"
#include "RakNetTypes.h"
#include "PacketPriority.h"
using namespace RakNet;
using namespace std;
#define SERVER_ADDR "94.250.***.***"
#define SERVER_PORT 19132
#define MAX_CONNS 50
RakNet::RakPeerInterface *peerInterface;
RakNet::Packet *packet;
int checkresp() {
int stop = 0;
while (true) {
packet=peerInterface->Receive();
if (packet) {
switch (packet->data[0])
{
case ID_CONNECTION_REQUEST_ACCEPTED:
printf("The connection to the server has been accepted.\n");
break;
case ID_UNCONNECTED_PING_OPEN_CONNECTIONS:
cout << "Server is open...\n";
cout << packet->data[1] << '\n';
cout << packet->data[2] << '\n';
cout << packet->data[3] << '\n';
cout << packet->data[4] << '\n';
}
std::cout << "/* message */" << '\n';
stop = 1;
}
if (stop) {
break;
}
}
cout << "ok\n";
return 1;
}
int main()
{
peerInterface = RakNet::RakPeerInterface::GetInstance();
RakNet::SocketDescriptor sock(49152, 0);
peerInterface->Startup(1,&sock, 1);
printf("Client is connecting to %s:%d\n", SERVER_ADDR, SERVER_PORT);
peerInterface->Connect(SERVER_ADDR, SERVER_PORT, 0,0);
checkresp();
RakNet::BitStream myStream;
myStream.Write((unsigned char)0x01);
myStream.Write(0x00000000003c6d0d);
myStream.Write(0x00ffff00fefefefefdfdfdfd12345678);
peerInterface->Send(&myStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_RAKNET_GUID, true, 1);
checkresp();
cout << 666 << '\n';
RakNet::RakPeerInterface::DestroyInstance(peerInterface);
return 0;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Сортирую интовый вектор, не мог понять как происходит выход за границы массивы, вот код:
Есть список MyListМне нужно чтобы в методе addItem вызывался копирующий конструктор класса у объекта переданного в метод addItem, а не только класса...
У меня задание реализовать класс Binary и перегрузить в классе оператор +Я это реализовал, но при выводе выдает неправильный результат
Сколько использую потоки, никогда их не join()-ил