Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2009, 13:30   #1
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию Простейшее клиент-серверное приложение в Delphi 2009

Пишу простейшее клиент-серверное приложение в Delphi 2009 , программа состоит из клиента и сервера , сервер получает сообщение и отправляет подтверждение , при отправке происходит зависание.
Вот клиентская процедура, отправляющая сообщения:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
	IdTCPClient1.Connect;
	IdTCPClient1.IOHandler.Write(Edit1.Text);
	Edit1.Text:=IdTCPClient1.IOHandler.ReadLn;
	IdTCPClient1.Disconnect;
end;
Вот серверная процедура, принимающая сообщения:
Код:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
begin
	with AContext.Connection do
	begin
		Memo1.Lines.Add(IOHandler.ReadLn);
		IOHandler.WriteLn('Ок'); ;
		Disconnect;
	end;
end;
Также стоит посмотреть вложение.
Помогите правильно сделать программу.
Вложения
Тип файла: rar TCP клиент+сервер.rar (255.0 Кб, 26 просмотров)
RNT вне форума Ответить с цитированием
Старый 07.07.2009, 13:52   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
IdTCPClient1.IOHandler.Write(Edit1.Text);
=>
Код:
IdTCPClient1.IOHandler.Writeln(Edit1.Text);
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.07.2009, 13:57   #3
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Заменил , все равно не работает
RNT вне форума Ответить с цитированием
Старый 07.07.2009, 14:10   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
все равно не работает
что не работает ?
где не работает?
объясняйте нормально на какой строке(после какой строки, перед какой строкой) какая ошибка/проблема возникает.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.07.2009, 14:15   #5
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Connect;
IdTCPClient1.IOHandler.WriteLn(Edit 1.Text);
Edit1.Text:=IdTCPClient1.IOHandler. ReadLn; //На этом месте зависает
IdTCPClient1.Disconnect;
end;
RNT вне форума Ответить с цитированием
Старый 07.07.2009, 14:17   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Вывод:
1. Сервер ничего не пишет в сокет
2. Сервер не пишет перевод строки/возврат каретки
Действия:
дебаг сервера.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.07.2009, 14:22   #7
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Сейчас я попробовал убрать строчку , на которую указал в предыдущем сообщении. Результат : сообщение доходит до сервера если написано английскими буквами , если написано русскими буквами то приходят вопросительные знаки , в чем дело ? В Delphi 2009 используется юникод , а это значит , что проблем с кодировками быть не должно
RNT вне форума Ответить с цитированием
Старый 07.07.2009, 14:38   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
В Delphi 2009 используется юникод , а это значит , что проблем с кодировками быть не должно
Откуда такое утверждение?
Использование UTF кодировок лишь обязывает вас более явно указывать в многих случаях кодировку текста, для чего в Indy все есть.
Если у вас проект действительно сейчас сделан так как вы говорите то все должно работать. Если нет, выкладывайте тот проект, на котором сейчас проверяете, посмотрю.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.07.2009, 14:50   #9
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Выкладываю проект , из которого я удалил одну строку , эта программа из windows работает почти нормально (проблема с кодировкой) , если запустить из delphi то выйдет ошибка
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
	IdTCPClient1.Connect;
	IdTCPClient1.IOHandler.WriteLn(Edit1.Text);
	IdTCPClient1.Disconnect;
end; //Через некоторое время после этой строки выйдет ошибка
Вложения
Тип файла: rar TCP клиент+сервер.rar (256.0 Кб, 21 просмотров)
RNT вне форума Ответить с цитированием
Старый 07.07.2009, 14:54   #10
RNT
Пользователь
 
Аватар для RNT
 
Регистрация: 15.09.2008
Сообщений: 59
По умолчанию

Скриншот ошибки
Изображения
Тип файла: jpg ошибка.JPG (19.7 Кб, 124 просмотров)
RNT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
Клиент-серверное приложение: Callback MaTBeu Общие вопросы C/C++ 13 02.06.2008 20:27
Простейшее приложение для телефона :SE K750i GAGARIN-NEW Фриланс 2 17.04.2008 17:19
Клиет - серверное приложение Mitron Работа с сетью в Delphi 6 20.08.2007 19:57
Клиент-серверное приложение veryseldom Работа с сетью в Delphi 8 20.08.2007 19:57