Skip to content

Commit

Permalink
Refactor Main.cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
xorz57 committed Dec 2, 2023
1 parent d97884f commit f1d8355
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions src/Main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,20 @@ int main(int argc, char *argv[]) {
return 0;
}

if (!vm.count("host")) {
std::cerr << desc << std::endl;
return 1;
}
const std::string host = vm["host"].as<std::string>();

const std::string portRange = vm["port"].as<std::string>();
unsigned int portBegin, portEnd;
std::size_t colonPos = portRange.find(':');
if (colonPos != std::string::npos) {
std::string beginStr = portRange.substr(0, colonPos);
std::string endStr = portRange.substr(colonPos + 1);

std::istringstream(beginStr) >> portBegin;
std::istringstream(endStr) >> portEnd;

unsigned int portBegin = 0;
unsigned int portEnd = 0;

std::size_t pos = portRange.find(':');
if (pos != std::string::npos) {
std::string portBeginString = portRange.substr(0, pos);
std::string portEndString = portRange.substr(pos + 1);

std::istringstream(portBeginString) >> portBegin;
std::istringstream(portEndString) >> portEnd;
} else {
std::istringstream(portRange) >> portBegin;
portEnd = portBegin;
Expand All @@ -72,18 +71,18 @@ int main(int argc, char *argv[]) {
return 1;
}

boost::asio::io_context io_service;
if (protocol == "tcp") {
boost::asio::io_context io_service;

boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::query query(host, "0");
boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::query query(host, "0");
boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);

if (protocol == "tcp") {
std::map<unsigned int, std::unique_ptr<boost::asio::ip::tcp::socket>> sockets;
for (unsigned int port = portBegin; port <= portEnd; port++) {
auto s = std::make_unique<boost::asio::ip::tcp::socket>(io_service);
auto socket = std::make_unique<boost::asio::ip::tcp::socket>(io_service);
boost::asio::ip::tcp::endpoint peer_endpoint(endpoint_iterator->endpoint().address(), port);
s->async_connect(peer_endpoint, [port, protocol, show](const boost::system::error_code& error)-> void {
socket->async_connect(peer_endpoint, [port, protocol, show](const boost::system::error_code& error)-> void {
if (!error) {
if (show != "closed") {
std::cout << "Port " << port << "/" << protocol << " is open." << std::endl;
Expand All @@ -94,8 +93,9 @@ int main(int argc, char *argv[]) {
}
}
});
sockets.emplace(port, std::move(s));
sockets.emplace(port, std::move(socket));
}

io_service.run();
}

Expand Down

0 comments on commit f1d8355

Please sign in to comment.