На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

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

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> LanChat , Чат
    Как сделать чат?

    - Какие компоненты лючше использовать
    - ...

    Может исходник найджется 7

    PLZ
      Найдётся smile.gif
      Delphi\Demos\Internet\Chat
        Этот пример мне не очень нравится херота какаято! Лючше если бы всё это объеденить ещё!!
          ну так вперед, если лень поищи в нете.
            Что может быть проще?
            я юзаю только TClient(Server)Socket, все отлично.
              Проще некуда. (но я юзаю апишные ф-ции напрямую)
              Есть еще множетсво примеров в MSDN от шестой студии.
                Проще, проще, дайте хоть пример ...

                В компонентах нашёл
                > Indy >
                >> idTCPSrver (на этих компонентах построен исходник в demos)
                >> idTCPClient

                >> idUdpServer
                >> idUdpClient

                Можно краткую инфу по этим компонентам ..
                Какой лючше использовать (TCP or Udp)
                  Я же сказал. Читай MSDN. Есть сетевая версия...
                      Сделал я чат на основе TCP !
                      Лично мне не очень понравился!"

                      Возможно ли сделать чат без SErver and Client?
                      Как узнать IP Всех компов подключенных к локалке?

                      plz...
                        Цитата
                        n0wheremany, 22.12.03, 18:12
                        Как узнать IP Всех компов подключенных к локалке?



                        var
                          Computer: array [1..500] of string[25];
                          ComputerCount: Integer;

                        procedure FindAllComputers(Workgroup: string);
                        var
                          EnumHandle: THandle;
                          WorkgroupRS: TNetResource;
                          Buf: array [1..500] of TNetResource;
                          BufSize: Integer;
                          Entries: Integer;
                          Result: Integer;
                        begin
                          ComputerCount := 0;
                          Workgroup := Workgroup + #0;
                          FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
                          with WorkgroupRS do
                          begin
                            dwScope := 2;
                            dwType := 3;
                            dwDisplayType := 1;
                            dwUsage := 2;
                            lpRemoteName := @Workgroup[1];
                          end;

                          WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @WorkgroupRS, EnumHandle);

                          repeat
                            Entries := 1;
                            BufSize := SizeOf(Buf);

                            Result := WNetEnumResource(EnumHandle, Entries, @Buf, BufSize);
                            if (Result = NO_ERROR) and (Entries = 1) then
                            begin
                              Inc( ComputerCount );
                              Computer[ ComputerCount ] := StrPas(Buf[1].lpRemoteName);
                            end;
                          until
                            (Entries <> 1) or (Result <> NO_ERROR);

                          WNetCloseEnum( EnumHandle );
                        end;

                        способ 2
                        unit FindComp;  

                        interface  

                        uses  
                         Windows, Classes;  

                        function FindComputers: DWORD;  

                        var  
                         Computers: TStringList;  

                        implementation  

                        uses  
                         SysUtils;  

                        const  
                         MaxEntries = 250;  

                        function FindComputers: DWORD;  

                        var  
                         EnumWorkGroupHandle, EnumComputerHandle: THandle;  
                         EnumError: DWORD;  
                         Network: TNetResource;  
                         WorkGroupEntries, ComputerEntries: DWORD;  
                         EnumWorkGroupBuffer, EnumComputerBuffer: array[1..MaxEntries] of TNetResource;  
                         EnumBufferLength: DWORD;  
                         I, J: DWORD;  

                        begin  

                         Computers.Clear;  

                         FillChar(Network, SizeOf(Network), 0);  
                         with Network do  
                         begin  
                           dwScope := RESOURCE_GLOBALNET;  
                           dwType := RESOURCETYPE_ANY;  
                           dwUsage := RESOURCEUSAGE_CONTAINER;  
                         end;  
                           
                         EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @Network, EnumWorkGroupHandle);  

                         if EnumError = NO_ERROR then  
                         begin  
                           WorkGroupEntries := MaxEntries;  
                           EnumBufferLength := SizeOf(EnumWorkGroupBuffer);  
                           EnumError := WNetEnumResource(EnumWorkGroupHandle, WorkGroupEntries, @EnumWorkGroupBuffer, EnumBufferLength);  

                           if EnumError = NO_ERROR then  
                           begin  
                             for I := 1 to WorkGroupEntries do  
                             begin  
                               EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @EnumWorkGroupBuffer[I], EnumComputerHandle);  
                               if EnumError = NO_ERROR then  
                               begin  
                                 ComputerEntries := MaxEntries;  
                                 EnumBufferLength := SizeOf(EnumComputerBuffer);  
                                 EnumError := WNetEnumResource(EnumComputerHandle, ComputerEntries, @EnumComputerBuffer, EnumBufferLength);  
                                 if EnumError = NO_ERROR then  
                                   for J := 1 to ComputerEntries do  
                                     Computers.Add(Copy(EnumComputerBuffer[J].lpRemoteName, 3, Length(EnumComputerBuffer[J].lpRemoteName) - 2));  
                                 WNetCloseEnum(EnumComputerHandle);  
                               end;  
                             end;  
                           end;  
                           WNetCloseEnum(EnumWorkGroupHandle);  
                         end;  

                         if EnumError = ERROR_NO_MORE_ITEMS then  
                           EnumError := NO_ERROR;  
                         Result := EnumError;  

                        end;  

                        initialization  

                         Computers := TStringList.Create;  

                        finalization  

                         Computers.Free;  

                        end.




                        Song хотел послать в фак, но там вроде нету smile.gif
                          2 POD в инет-факе может и нету, а вот в том хоторый DelphistFAQ.chm есть
                            А насчёт первого вороса мыслей нет?
                              Цитата
                              n0wheremany, 24.12.03, 21:19
                              А насчёт первого вороса мыслей нет?

                              имхо лучше делать на основе MAILSLOT - это будет аналог WinPopup'а или команды net send
                              плюсы тут как раз то что не нужна связка клиент - сервер
                              инфу можна нарыть тут
                              http://firststeps.narod.ru/vc/winapi/154.html
                              http://delphiworld.narod.ru/base/net_data_...l_channels.html
                                Скачал я GlobusLib! И всё равно неразобрался чо почём!
                                Может кто пожуёт мне шуть-шуть? blink.gif
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0421 ]   [ 15 queries used ]   [ Generated: 3.06.24, 04:08 GMT ]