Консультация № 55940
19.09.2006, 12:21
0.00 руб.
0 5 2
Здравствуйте эксперты у меня вопрос.
Есть 2 программы 1- написана на WinApi оконное приложение
2- под консоль.
Две программы связываются через сеть.
Одна программа сервер другая клиент!
Клиент это консольное приложение.
Дело в том, что когда команда приходит, а приходит она в тексте
Приложение под Windows в упор её не видит, то есть, отослана команда
open на сервере идёт такая проверка if (szRecvBuff=="open"){MessageBox(0,”Hello”,”Hello”,0);}
Я так понял проблема в разных кодировках! Как исправить?
С уважением,
Zmeu.

Обсуждение

Неизвестный
19.09.2006, 12:34
общий
это ответ
Здравствуйте, Tamashev Denis M!

Если ты не использовал юникод, то вероятность, что дело в кодировках очень мала... Веозможно пересылаються лишние символы (например - ноль на конце строки и т.д.)
Неизвестный
19.09.2006, 14:02
общий
это ответ
Здравствуйте, Tamashev Denis M!
Я вижу два возможных варианта решения твоей проблемы:
1 Попробуй сравнивать строки с помощью функции strcmp (см приложение).

2 Проверь, точно ли команда open передается в нижнем регистре или строка содержит кроме слова open еще какую-то информацию.

В первом случае перевиди строку в нижний режим API функцией CharLowerBuf()

DWORD CharLowerBuf(
LPTSTR lpsz // указатель на строку, для которой следует сделать конвертацию символов в внижний регистр
DWORD cchLenght); // Длина конвертируемой строки

В последнем случае надо выделить из строки szRecvBuff подсроку, где ожидается слово "open" смотри протокол обмена сообщениями между клиентом и сервером, принятый в вашем случае.


Приложение:
if (strcmp(szRecvBuff,"open")==0}{ MessageBox(0,”Hello”,”Hello”,0);}
Неизвестный
19.09.2006, 16:08
общий
а в дэбаге что? что ваще в буфере?кстати, строки сравниваются по-другому (по крайней мере те, которые string-zero, если конечно szRecvBuff не экземпляр класса с перегруженным соответствующим оператором сравнения)
Неизвестный
19.09.2006, 18:10
общий
вместо if (strcmp(szRecvBuff,"open")==0}используйте if (strncmp(szRecvBuff,"open",4)==0)Вряд ли проблема с кодировками.
Неизвестный
19.09.2006, 18:46
общий
Сухомлин Кирилл Владимирович =>>> Спасибо большое. Вашь пример оказался работоспособным =)С уважением,Zmeu.
Форма ответа