Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизКлиент TClientSocket Сервер TIdTCPServer не понимают друг друга Найти похожие ветки
← →
Kacnep © (2006-03-10 13:27) [0]На клиенте использую cs_Client: TClientSocket;
Неблокирующий режим
В самом начале на событии ОнКоннект с клиента идет отправка версии и сервер получив и сверив версии (байт) отправляет некий дикий буфер. Клиент получает, парсит его. И спустя скажем 1 мин отправляет на сервер что типа таких строк в зависимости от настроения.
cs_Client.Socket.SendText(" ");
или
cs_Client.Socket.SendText("c:\cheat\cheat.exe ");
Сервер пишеться на Инди 10 и Дельфи 6
id_Srv: TIdTCPServer;
Смотрим ниже код он Execute...
ВООБЩЕ! ничего сервант не получает а токо виснет. :( почему может быть?
Может как то ОнЭкзекуте не верно использую.
ВОПРОС 2 Надо ли выносить все это дело в отдельный поток? - ВЕдь клиентов таких куча будет... Осилит?
procedure Tf_Main.id_SrvConnect(AContext: TIdContext);
var
clVer:Smallint;
begin
clVer:=AContext.Connection.IOHandler.ReadSmallInt(false);
if clVer<>c_Ver then
AContext.Connection.Disconnect
else begin
lb_Users.Items.Insert(0,AContext.Connection.Socket.Binding.PeerIP);
AContext.Connection.IOHandler.Write(MS);
// sb_Main.Panels[3].Text:=IntToStr(strtoint(sb_Main.Panels[3].Text)+1);
end;
end;
procedure Tf_Main.id_SrvExecute(AContext: TIdContext);
var
s:string;
begin
lb_Users.Items.Insert(0,AContext.Connection.IOHandler.Host);
s:=AContext.Connection.IOHandler.ReadLn;
Addlog(s,Logf);
Caption:=s;
//!!!если читер то обновить статус бар и вызвать дисконнект
end;
Спасибо
← →
Kacnep © (2006-03-10 13:34) [1]Да забыл добаваить все работает до момента когда раз в мин что то должно придти на сервер :(.
Спасибо
← →
Dmitrij_K (2006-03-10 13:52) [2]Попробуй SendText("лалала"#13#10)
← →
Pavia © (2006-03-10 13:53) [3]Kacnep
Клиент
cs_Client.Socket.SendText("c:\cheat\cheat.exe ");
шлет
"c:\cheat\cheat.exe "
А сервер ждет конца строки #13#10.
При отправки с клиента добавь в конце два символа
cs_Client.Socket.SendText("c:\cheat\cheat.exe "#13#10);
← →
Kacnep © (2006-03-10 14:05) [4]Люди! Не поверите что я с вами сделаю если зарабюотает!
СПАСИБО!
← →
Сергей М. © (2006-03-10 14:23) [5]
> если зарабюотает
А куда оно денется)
Еще как заработает !
Передача терминирующей строку последовательности символов #13#10 - крайне важный момент для работы ReadLn()
← →
Kacnep © (2006-03-10 14:25) [6]Нет :(
не заработало :((
Блин буду тестить и разбираться :((
Главное сервак виснет намертво (смотрел на него в течении 10 сек)... :(
← →
Сергей М. © (2006-03-10 14:48) [7]
> смотрел на него в течении 10 сек
Ну и чего ты на него вылупился, спрашивается ?)
Сам по себе он не заработает - ошибки нужно исправлять ..
Начни с того что обращение к ListBox"у в контексте доп.потока недопустимо
← →
Каспер (2006-03-12 10:21) [8]Все народ! Все заработало. Сразу... (#13#10) (Не туда не то и не так посылал)
Большое спасибо откликнувшимся!
Удачи и поменьше ошибок в Ваших проектах!
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c