Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Чат для локалки   Найти похожие ветки 

 
Sheng ©   (2004-04-18 18:28) [0]

Вот, решил разобраться с сетью и сделать чат. Сделал на TServerSocket и TClientSocket - два приложения сервер и клиент. Это всё нормально работает.
А вот сам вопрос - как сделать чат в виде одного приложения - без отдельного сервера и клиентов?


 
Sheng ©   (2004-04-18 22:32) [1]

Вообще, есть у кого-нибудь идеи, как при загрузке определить, где загружены чаты, получить инфу о них, установить соединение, и т.д. как это сделано в чатах без выделенного сервера???


 
Rouse_ ©   (2004-04-18 22:35) [2]

UDP - броадкаст...


 
XAOC ©   (2004-04-18 22:56) [3]

у  меня  есть исходник  одного чата... если  надо то пиши на alex-electronik@list.ru скину...


 
Sheng ©   (2004-04-19 10:04) [4]

> Rouse_

UDP - броадкаст...

А порты как определять? Или там не надо?... Я ж не знаю...


 
Sheng ©   (2004-04-19 11:17) [5]

Народ, мож кто занимался так сетью - киньте какие-нибудь исходнички на мыло, на них проще разбираться.

> Rouse_
Теорию прочитал, кое-что понял, кое-что нет, но всё равно не допру как работать правильно с сетью.


 
Rouse_ ©   (2004-04-20 11:32) [6]

На практике, кидай на форму IdUDPServer и IdUDPClient с закладки IndyServers и IndyClients, в uses добавь IdSocketHandle

Потом положи на форму кнопку, Edit и Memo
При нажатии на кнопку будем отправлять содержимое Edit
При приёме - отображать полученное в Memo

код получится примерно такой:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdUDPClient, IdBaseComponent, IdComponent, IdUDPBase,
 IdUDPServer, IdSocketHandle;

type
 TForm1 = class(TForm)
   IdUDPServer1: TIdUDPServer;
   IdUDPClient1: TIdUDPClient;
   Button1: TButton;
   Edit1: TEdit;
   Memo1: TMemo;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
     ABinding: TIdSocketHandle);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 IdUDPServer1.DefaultPort := 25080;
 IdUDPServer1.Active := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 IdUDPClient1.Broadcast(Edit1.Text, 25080);
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
 ABinding: TIdSocketHandle);
var
 Str: TStringStream;
begin
 Str := TStringStream.Create("");
 try
   Str.CopyFrom(AData, AData.Size);
   Str.Position := 0;
   Memo1.Lines.Add(Str.DataString);
 finally
   Str.Free;
 end;
end;

end.


 
Anvar Turakulov   (2004-04-21 09:16) [7]

Удалено модератором
Примечание: Задай вопрос в своей ветке...



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.058 c
6-1082269565
Mim1
2004-04-18 10:26
2004.06.06
Как избежать повления окна подключения к сети в win xp?


8-1079009082
all_
2004-03-11 15:44
2004.06.06
Подскажите как мне изменить цвет


4-1083080101
DoG
2004-04-27 19:35
2004.06.06
Pipe s


14-1085123667
Layner
2004-05-21 11:14
2004.06.06
Статика на машине (2106), у кого то есть такое же?


1-1085567331
AlexG
2004-05-26 14:28
2004.06.06
Проблема с переносом макроса...