Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2008, 02:19   #1
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
Вопрос Узнать какие компы в сети

Доброго времени суток!
Я пишу чтото типа чата, но он не обычный.
Я не использую server socket и client socket это для меня слишком непонятно. Идея такова:
Сервер создает на своем диске файлик с скажем именем 'Chat.txt' и скидывает туда все свои реплики через append
Тоже самое делают и клиенты, скидывают в тот же комп
работает таймер и он ловит, не одбавилась ли строчечка.. и добавляет скажем в memo1
Адрес - \\Имя компа\с\директория\Chat.txt
всё норм работает.
А вот вопросик: как отсканировать список компов в сети(в смысле их имён) и записать в какой-то массив срочный?
было бы полезно, а то задрался вводить каждый раз
Заранее спасибо.
ПыСы: Кстати а как смайлы реализовать? Я искал, нифега ни нашёл
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 15.03.2008, 09:46   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Можно через WNetEnumResource. Примеров в сети множество.

Но, если рассмотреть твою схему: все сбрасывают сообщения в один файл, то заведи еще один файл и пусть все запущенные (твои) программы сбрасывают туда свое имя и удаляют его при выходе. Или еще проще - просто создают файл имя которого = имени пользователя. Сканируешь имена файлов и получаешь имена пользователей.
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 15:23   #3
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Я так и сделал
А по подробнее можно?
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 16.03.2008, 15:29   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Какую часть подробнее ? Если сделал, значит работает. Так в чем вопрос ?
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 15:33   #5
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Зделал чтобы кто присоединится создавал файлик - имя - имя клиента, а содержимое - статус (онлайн,занят...).
А удалять чтото не получается ни deletefile ни erase не помогают, файл как был, так и остался.
По подробнее - код поиска компов.
Если выйти на несуествуюший комп то будет завис.
Прошу выложить код
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 16.03.2008, 15:43   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Dj_smart Посмотреть сообщение
Зделал чтобы кто присоединится создавал файлик - имя - имя клиента, а содержимое - статус (онлайн,занят...).
А удалять чтото не получается ни deletefile ни erase не помогают, файл как был, так и остался.
У ты его закрыть после создания не забыл ?

Цитата:
Если выйти на несуествуюший комп то будет завис.
Какой "завис" м.б., если и выхода-то не было. У тебя-ж все сообщения свалены в кучу в одном файле на одном компе. ?

Цитата:
По подробнее - код поиска компов.
Прошу выложить код
Это ты про WNetEnumResource ? Так к твоей схеме этого не прикрутишь.
Или про файловый метод. Так это просто поиск файлов в каталоге.
Посмотри в справке пример к FindFirst
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 15:50   #7
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
У ты его закрыть после создания не забыл
Нет не забыл. Создал- закрыл.
Цитата:
Так это просто поиск файлов в каталоге.
Посмотри в справке пример к FindFirst
Как искать обычные файлы я знаю.
Вот код:
Код:
procedure SearchDir(fn, Dir:string);
var
SRec: SearchRec;
ckl:integer;
F:file;
regs:registers;
begin
if dir[length(dir)]<>'\' then Dir:=Dir+'\';

FindFirst(Dir+fn, AnyFile, SRec);
while DosError = 0 do begin
WriteLN(Dir+SRec.Name);
FindNext(SRec);
End;
FindFirst(Dir+'*.*', Directory, SRec);
while DosError = 0 do begin
with SRec do
if (Attr and 16 <> 0 ) and (Name[1]<>'.') then
SearchDir(fn,Dir+Name);
FindNext(SRec);
end;
end;
А от как искать компы?
Тапа по директории ('*.*','\\') - первое маска второе путь поиска?
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 16.03.2008, 16:10   #8
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Dj_smart Посмотреть сообщение
А от как искать компы?
Тапа по директории ('*.*','\\') - первое маска второе путь поиска?
wait, wait... Мы же вроде определились. Каждый комп содает файл с именем = имени компа. Вот эти файлы и ищем. У них должно быть что-то общее. Например, расширение. Скажем, '.usr'

FindFirst(Dir+'*.usr', faAnyFile, SRec);
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 16:13   #9
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Нет мне не надо, какие подключились, мне надо узнать какие вооще подключены к сети!
Цитата:
Каждый комп содает файл с именем = имени компа. Вот эти файлы и ищем. У них должно быть что-то общее. Например, расширение. Скажем, '.usr'
FindFirst(Dir+'*.usr', faAnyFile, SRec);
Это конечно тоже идея!
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 16.03.2008, 16:31   #10
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Тогда через WNetOpenEnum / WNetEnumResource
Проще я не знаю. Примеров, как я уже говорил, в сети много.
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие игры качать? Altera Свободное общение 23 22.10.2011 13:56
как узнать включен ли комп в локальной сети Monster Работа с сетью в Delphi 17 27.08.2010 16:41
узнать какие диски есь в системе AIst Общие вопросы Delphi 4 08.08.2008 18:42
Как узнать какие ячейки у StringGrid-а видимы? Sergey2 Компоненты Delphi 2 04.06.2008 13:57
Как узнать какие поля поменялись в таблице D-mon БД в Delphi 0 03.08.2007 11:53