عرض مشاركة واحدة
قديم 20-10-2024, 07:51 PM   #4

romio1000
عضو جديد





• الانـتـسـاب » Oct 2024
• رقـم العـضـويـة » 181466
• المشـــاركـات » 4
• الـدولـة »
• الـهـوايـة »
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 10
romio1000 صـاعـد

romio1000 غير متواجد حالياً



افتراضي رد: هل يوجد داتا بيز لسيلك رود الاصلية ؟



ده جزء بسيط من ملفات سيرفر سيلك رود اصليه وبرامجه SR_gameserver

موضوع اسهل ما يمكن
#include <iostream>
#include <boost/asio.hpp>

using boost::asio::ip::tcp;

class GameServer {
public:
GameServer(boost::asio::io_context& io_context, short port)
: acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) {
start_accept();
}

private:
void start_accept() {
tcp::socket* new_socket = new tcp::socket(acceptor_.get_io_context());
acceptor_.async_accept(*new_socket,
[this, new_socket](const boost::system::error_code& error) {
if (!error) {
std::cout << "New player connected!" << std::endl;
start_read(new_socket);
}
start_accept();
});
}

void start_read(tcp::socket* socket) {
char* data = new char[1024];
socket->async_read_some(boost::asio::buffer(data, 1024),
[this, socket, data](const boost::system::error_code& error, size_t length) {
if (!error) {
std::cout << "Received message: " << std::string(data, length) << std::endl;
start_read(socket);
}
delete[] data;
});
}

tcp::acceptor acceptor_;
};

int main() {
try {
boost::asio::io_context io_context;
GameServer server(io_context, 32002);
io_context.run();
}
catch (std::exception& e) {
std::cerr << "Exception: " << e.what() << std::endl;
}
return 0;
}




رد مع اقتباس