Problem z deklaracja funkcji itoa_s w serverze jednowatkowym

0

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;
}
0

_itoa_s to bezpieczniejsza wersja funkcji itoa w wydaniu microsoftu.

0

i ws2_32.lib nie ma tutaj nic do gadania.. itoa i jej pochodne leża w crt jesli mnie pamiec nie myli

1 użytkowników online, w tym zalogowanych: 0, gości: 1