Форум: "Сети";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
ВнизЧат для локалки Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c