Главная страница
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.057 c
4-1083751788
Серж
2004-05-05 14:09
2004.06.06
Как запретить обновление окон некоего приложения?


3-1084526011
Dina
2004-05-14 13:13
2004.06.06
Поле not null --- gbk gdb


3-1084739742
ЯЯЯ
2004-05-17 00:35
2004.06.06
как удалить пустую строку из dbgrid a ?(ado)


1-1085373265
Robin
2004-05-24 08:34
2004.06.06
Вставить в Word картинку


1-1085399943
С Виктор Н
2004-05-24 15:59
2004.06.06
Программа написанная на Delphi не завершается