C++ odczytywanie adresu ip klienta 2517 0

O temacie

Autor Wonski

Zaczęty 31.10.2015 roku

Wyświetleń 2517

Odpowiedzi 0

Wonski

Wonski

Gry (themodders@telegram)
radio engineer
posty256
Propsy91
ProfesjaProgramista
  • Gry (themodders@telegram)
  • radio engineer

Wonski
Gry (themodders@telegram)

C++ odczytywanie adresu ip klienta
2015-10-31, 22:20(Ostatnia zmiana: 2015-10-31, 22:28)
Witam,
Mam kod serwera:
int _tmain(int argc, _TCHAR* argv[])
{

int result = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (result != NO_ERROR)
printf("initialization error\n");

mainSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (mainSocket == INVALID_SOCKET)
{
printf("Error creating socket %ld\n", WSAGetLastError());
WSACleanup();
system("PAUSE");
return 1;
}

memset(&service, 0, sizeof(service));
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("192.168.1.2");
service.sin_port = htons(27015);

if (bind(mainSocket, (SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR)
{
printf("bind() failed\n");
closesocket(mainSocket);
system("PAUSE");
return 1;
}

if (listen(mainSocket, 1) == SOCKET_ERROR)
printf("Error listening on socket\n");

acceptSocket = SOCKET_ERROR;
printf("Waiting for a client to connect..\n");
while (acceptSocket == SOCKET_ERROR)
{
acceptSocket = accept(mainSocket, NULL, NULL);
}

printf("Client connected.\n)");
mainSocket = acceptSocket;

odb = recv(mainSocket, bufor_serv, 10, 0);
if (odb != 0)
MessageBox(0, L"cos tam odebrano", NULL, MB_OK);




CreateFile(L"test_log_rec.txt", GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_HIDDEN, NULL);
plik.open(L"test_log_rec.txt");

for (int i = 0; i < 10; i++)
{
plik << bufor_serv[i];
}

system("PAUSE");
return 0;
}

W jaki sposób mając powyższy kod i bibliotekę winsock mogę odczytać adres IP od którego przyszedł pakiet danych? Tzn chodzi mi o oczywiście adres globalny.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry