Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прием сообщений от TcpServer

2.2K
18 апреля 2010 года
S@tana
53 / / 15.10.2009
Пишу клиент - серверную программу с использованием TcpServer и TcpClient.
Вопрос такой, как мне получить сообщение отосланное сервером?
Если есть у кого нибудь пример киньте плз.

Вот собственно мой быдло код)

Код:
begin
if OnServer.Checked=true then
begin     //Отправка сообщений с сервера(Клиент нужно выбрать в ComboBox)
(ComboBox1.Items.Objects[Combobox1.ItemIndex] as TcustomIPClient).Sendln(message.Text);
TcpServer1.Close;
TcpServer1.Open;
end
else
begin //Отправка сообщений из клиента
TcpClient1.Sendln(message.text);
TcpClient1.Close;
TcpClient1.Open;
end;
end;

procedure TForm1.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
  var s:string;
  begin
  ComboBox1.Items.AddObject(ClientSocket.RemoteHost+':'+ClientSocket.RemotePort,ClientSocket);
  s:=ClientSocket.Receiveln;     //принимаем сообщение от клиента
  konsol.Lines.Add(s);
end;
6
18 апреля 2010 года
George
4.1K / / 05.01.2007
Пример, собственно, можно посмотреть в приложении к книге "О чем не пишут в книга по Delphi" А. Григорьев. И книгу можно почитать, там по сокетам раздел есть - хорошо расписано все.
А спам из подписи уберите.
2.2K
18 апреля 2010 года
S@tana
53 / / 15.10.2009
Книжку обязательно посмотрю.
2.2K
18 апреля 2010 года
S@tana
53 / / 15.10.2009
Разобрался как принять сообщение от сервера, но появилась другая проблема. При установке коннекта форма клиента намертво повисает.
Если отправить сообщение с сервера, то оно придет только когда сервер будет остановлен.

Подскажите как это исправить!

Код:
procedure TForm1.Button1Click(Sender: TObject);   //врубаем сервер
begin
host.Enabled:=false;
TcpServer1.LocalHost:='127.0.0.1';
TcpServer1.LocalPort:='6666';
TcpServer1.Active:=true;
end;

procedure TForm1.connectClick(Sender: TObject); //коннектимся к серверу
begin
 TcpClient1.RemoteHost:='127.0.0.1';
 TcpClient1.RemotePort:='6666';
 TcpClient1.Active:=true;

end;

procedure TForm1.OnServerClick(Sender: TObject);
begin
Button1.Visible:=true;//показать(не показать) кнопку вкл. сервера
end;

procedure TForm1.sendClick(Sender: TObject);   //отправка сообщений
begin
if OnServer.Checked=true then
begin     //Отправка сообщений с сервера(Клиент нужно выбрать в ComboBox)
(ComboBox1.Items.Objects[Combobox1.ItemIndex] as TcustomIPClient).Sendln(message.Text);
TcpServer1.Close;
TcpServer1.Open;
end
else
begin //Отправка сообщений из клиента
TcpClient1.Sendln(message.text);
TcpClient1.Close;
TcpClient1.Open;
end;
end;

procedure TForm1.TcpClient1Connect(Sender: TObject);
begin
 konsol.Lines.Add(TcpClient1.Receiveln());    //получаем сообщение от сервера
end;

procedure TForm1.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
  var s:string;
  begin
  ComboBox1.Items.AddObject(ClientSocket.RemoteHost+':'+ClientSocket.RemotePort,ClientSocket);
  s:=ClientSocket.Receiveln;     //принимаем сообщение от клиента
  konsol.Lines.Add(s);
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог