Witam mam proble z funkcja itoa_s. Pracuje w Srodowisku Dev-Cpp, przy probie kompilacji w linijce :
_itoa_s(iPort,c,5,10);
Wyswietla mi blad, ze funckja nie jest zadeklarowana i uzyta po raz 1, dolaczam do konsolidatora bilbioteke w2_32.lib, ale to niestety nie pomaga
#pragma comment(lib, "Ws2_32.lib")
#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
using namespace std;
int main()
{
WORD wVersionRequested;
WSADATA wsaData;
int iErr, iWielkosc, iNumerKlienta = 0, iPort = 7;
char bufor[2048], cPort[5], serv[NI_MAXSERV], hostname[NI_MAXHOST];
SOCKET sClientSock, sAcceptSock;
struct sockaddr_in service;
struct addrinfo *result=NULL, hints;
wVersionRequested = MAKEWORD(2, 2);
cout << "Zadanie 3: Serwer jednowatkowy" << endl;
cout << "Wykonanie: Piotr Szewczyk" << endl << endl;
iErr = WSAStartup(wVersionRequested, &wsaData);
if(iErr != 0)
{
cout << "Uruchomienie WSAStartup nie powiodlo sie z bledem: " << iErr;
system("PAUSE");
return 0;
}
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
{
cout << "Biblioteka Winsock.dll w v2.2 nie zostala znaleziona w systemie.";
WSACleanup();
system("PAUSE");
return 0;
}
sClientSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sClientSock == INVALID_SOCKET)
{
cout << "Blad podczas tworzenia socketu: " << WSAGetLastError();
WSACleanup();
return 0;
}
ZeroMemory(&hints, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
hints.ai_flags = AI_PASSIVE;
_itoa_s(iPort,cPort,5,10);
iErr = getaddrinfo(NULL, cPort, &hints, &result);
if ( iErr != 0 )
{
cout << "Wywolanie getaddrinfo nie powiodlo sie. Wystapil blad o numerze: " << iErr;
closesocket(sClientSock);
WSACleanup();
return 0;
}
iErr = bind(sClientSock, result->ai_addr, (int)result->ai_addrlen);
if(iErr == SOCKET_ERROR)
{
cout << "Bind sie nie powiodl:";
closesocket(sClientSock);
WSACleanup();
return 0;
}
iErr = listen(sClientSock, 10 );
if (iErr == SOCKET_ERROR)
{
cout << "Bład podczas nasłuchu o kodzie: " << WSAGetLastError();
closesocket(sClientSock);
WSACleanup();
return 0;
}
while(1)
{
iNumerKlienta++;
iWielkosc=sizeof(service);
sAcceptSock = accept(sClientSock,(SOCKADDR *) &service,&iWielkosc);
if (sAcceptSock == INVALID_SOCKET)
{
cout << "Polaczenie sie nie powiodlo: h " << WSAGetLastError();
closesocket(sClientSock);
WSACleanup();
return 0;
}
else
{
cout << "Polaczenie zostalo zaakceptowane";
}
iErr = getnameinfo((SOCKADDR *) &service, iWielkosc, hostname, sizeof(hostname), serv, sizeof(serv), NI_NUMERICSERV);
if(iErr != 0)
{
cout << "Podczas pobierania nazwy klienta wystapil blad o kodzie: " << WSAGetLastError();
closesocket(sAcceptSock);
closesocket(sClientSock);
WSACleanup();
return 0;
}
cout << endl << "Polaczono z : " << inet_ntoa(service.sin_addr) << ":" << ntohs(service.sin_port) << " <" << hostname << ">";
cout << " Numer klienta: " << iNumerKlienta;
do
{
iErr = recv(sAcceptSock, bufor, sizeof(bufor),0);
if (iErr>0)
{
bufor[iErr]='\0';
cout << endl << "Odebrano " << iErr << " bajtow.";
cout << endl << "Przyjęto slowo: " << bufor ;
iErr = send(sAcceptSock, bufor, iErr,0);
if(iErr==SOCKET_ERROR)
{
cout << "Wyslanie wiadomosci sie nie powiodlo. Wystapil blad o kodzie: "<< WSAGetLastError();
closesocket(sAcceptSock);
closesocket(sClientSock);
WSACleanup();
return 0;
}
}
else if (iErr==0)
{
cout << endl <<"Polaczenie zakonczone!" << endl;
}
else
{
cout << "Wystapil blad podczas odbierania wiadomosci.";
closesocket(sAcceptSock);
closesocket(sClientSock);
WSACleanup();
return 0;
}
}while(iErr > 0);
}
system("PAUSE");
closesocket(sAcceptSock);
closesocket(sClientSock);
WSACleanup();
return 0;
}