raniam Ответов: 1

Получение const char * с пропущенным первым символом в клиентском / серверном приложении


Привет,

В клиент-серверном приложении сервер отправляет клиенту зашифрованное значение:

const char * Enc_Message2 = AES_Encrypt(Message2, Shared_Session_Key_S, I_V);
	cout<<"\n\nENCRYPTED MESSAGE2 {S,nb,ns}:";
	cout<<"\n============================="<<"\r\n"<<Enc_Message2;
	//cout<<"\n\nSIZE OF ENCRYPTED MESSAGE2: "<<sizeof(Enc_Message2);
	//cout<<"\n\nSIZE OF ENCRYPTED MESSAGE2 {S,nb,ns}: "<<sizeof(Enc_Message2);

	s5 =clientSock->SendString(Enc_Message2);
	 if (s5 != true) {
		std::cout << clientSock->lastErrorText() << "\r\n";
		return;	}


Хотя клиент получает значение, он получает его с отсутствующим первым символом.

const char * Recieved_Enc_Msg2 = 0;
	 Recieved_Enc_Msg2 = socket.receiveString();
		if (Recieved_Enc_Msg2 == 0 ) {
		std::cout << socket.lastErrorText();
		return;
	}
	std::cout<<"\n\nRECIEVED MESSAGE2: "<<"\r\n"<<Recieved_Enc_Msg2;



Кто-нибудь, пожалуйста, помогите мне!

Что я уже пробовал:

1 - я использовал std:: cout, но это не сработало.

1 Ответов

Рейтинг:
10

raniam

Привет еще раз,

Я только что исправил это, добавив следующий код на стороне сервера, прямо перед отправкой зашифрованного результата.


int e = strlen(Enc_Message2);
	char * enc_msg2 = new char[e+1];
	strcpy(enc_msg2, Enc_Message2);

5 =clientSock->SendString(enc_msg2);
	 if (s5 != true) {
		std::cout << clientSock->lastErrorText() << "\r\n";
		return;	}


с уважением.