hm, dein Stil ist insgesamt, nenne wir es mal fragwürdig.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#include <cstring> // std::memset
#include <iostream>
#include <windows.h>
#include <winsock.h>
const bool InitWinSock();
int main()
{
if (!InitWinSock())
{
std::cerr << "WinSock konnte nicht gestartet werden!\n" << ::WSAGetLastError() << std::endl;
return -1;
}
::SOCKET connection(::socket(AF_INET, SOCK_STREAM, 0));
if (connection == INVALID_SOCKET)
{
std::cerr << "Socket konnte nicht erstellt werden!\n" << ::WSAGetLastError() << std::endl;
return -2;
}
::SOCKADDR_IN addr = {0};
for (unsigned short port(0u); port <= 1000u; ++port)
{
std::memset(&addr, 0, sizeof(::SOCKADDR_IN));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr("192.168.111.17");
if (connect(connection, reinterpret_cast<::SOCKADDR*>(&addr), sizeof(::SOCKADDR)) == SOCKET_ERROR)
std::cerr << "Port " << port << ": " << ::WSAGetLastError() << std::endl;
else
std::cout << "Port " << port << " offen\a" << std::endl;
}
std::cout << "Ports 0 ... 1000 getestet!\a" << std::endl;
std::cin.get();
}
const bool InitWinSock()
{
::WSADATA wsa;
return ::WSAStartup(MAKEWORD(2, 0), &wsa) == 0;
}
|
Es könnten Fehler enthalten sein, ist nicht getestet ..