Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.198.129] |
|
Сообщ.
#1
,
|
|
|
Как сделать чат?
- Какие компоненты лючше использовать - ... Может исходник найджется 7 PLZ |
Сообщ.
#2
,
|
|
|
Найдётся
Delphi\Demos\Internet\Chat |
Сообщ.
#3
,
|
|
|
Этот пример мне не очень нравится херота какаято! Лючше если бы всё это объеденить ещё!!
|
Сообщ.
#4
,
|
|
|
ну так вперед, если лень поищи в нете.
|
Сообщ.
#5
,
|
|
|
Что может быть проще?
я юзаю только TClient(Server)Socket, все отлично. |
Сообщ.
#6
,
|
|
|
Проще некуда. (но я юзаю апишные ф-ции напрямую)
Есть еще множетсво примеров в MSDN от шестой студии. |
Сообщ.
#7
,
|
|
|
Проще, проще, дайте хоть пример ...
В компонентах нашёл > Indy > >> idTCPSrver (на этих компонентах построен исходник в demos) >> idTCPClient >> idUdpServer >> idUdpClient Можно краткую инфу по этим компонентам .. Какой лючше использовать (TCP or Udp) |
Сообщ.
#8
,
|
|
|
Я же сказал. Читай MSDN. Есть сетевая версия...
|
Сообщ.
#9
,
|
|
|
Сообщ.
#10
,
|
|
|
Сделал я чат на основе TCP !
Лично мне не очень понравился!" Возможно ли сделать чат без SErver and Client? Как узнать IP Всех компов подключенных к локалке? plz... |
Сообщ.
#11
,
|
|||||||
|
способ 2
Song хотел послать в фак, но там вроде нету |
Сообщ.
#12
,
|
|
|
2 POD в инет-факе может и нету, а вот в том хоторый DelphistFAQ.chm есть
|
Сообщ.
#13
,
|
|
|
А насчёт первого вороса мыслей нет?
|
Сообщ.
#14
,
|
|||
|
имхо лучше делать на основе MAILSLOT - это будет аналог WinPopup'а или команды net send плюсы тут как раз то что не нужна связка клиент - сервер инфу можна нарыть тут http://firststeps.narod.ru/vc/winapi/154.html http://delphiworld.narod.ru/base/net_data_...l_channels.html |
Сообщ.
#15
,
|
|
|
Скачал я GlobusLib! И всё равно неразобрался чо почём!
Может кто пожуёт мне шуть-шуть? |
Сообщ.
#16
,
|
|
|
в GlobusLib в общем ничего сложного, но я ждал большего... У меня такой вопрос(ы) : Это через эту службу работает Winpopup ? А то я как-то никогда не видел чтоб один был сервером а второй клиентом, или у всех оба запущены? Если так, то какой смысл использовать GlobusLib, если можно обойтись API, Client(Server)Socket'ами. А вообще я прогу видел у друга в общаге, даже не одну, которая рассылает сообщения как Winpopup и получает вроде как единый стандарт обмена сообщениями.
|
Сообщ.
#17
,
|
|
|
>Diamond - прочитай все-таки ZEE Сообщ. #14 от 25.12.03, 10:43 - может станет яснее...
|
Сообщ.
#18
,
|
|
|
Цитата Diamond от 28.12.03, 08:58 В GlobusLib в общем ничего сложного, но я ждал большего... У меня такой вопрос(ы) : Это через эту службу работает Winpopup ? А то я как-то никогда не видел чтоб один был сервером а второй клиентом, или у всех оба запущены? Если так, то какой смысл использовать GlobusLib, если можно обойтись API, Client(Server)Socket'ами. А вообще я прогу видел у друга в общаге, даже не одну, которая рассылает сообщения как Winpopup и получает вроде как единый стандарт обмена сообщениями. Я разобрался полность в GlobusLib! Охрененная вещь! Очень простая! Работа компонента MailslotTerminal > > Создаётся лиия передачи данных Он (компонент) читает из этой линии массаги, и отправляетт" /// Изменены названия, чтобы было понятно Здесь нет ни клиента ни сервера. Программа работает как клиент, а сервером выступает та самая линия! // Эсли что нетак - обоснуйте // ^) Такой вопросик > Как узнать свой IP адресс в локальной сети // Мне нужна проседура типа procedure GetIpAdress:string // Скоро появится релизная версия чата Добавлено в : Да и ещё как отправить файл (или папку) по локалке с програссом копирования! |
Сообщ.
#19
,
|
|
|
вот че-то похожее есть
http://eef.ispu.ru/sitestud/sav/uddf/pages...rk.htm#network4 тока не стринг получается, а лонгинт... |
Сообщ.
#20
,
|
|
|
Цитата ZEE от 29.12.03, 13:17 вот че-то похожее есть http://eef.ispu.ru/sitestud/sav/uddf/pages...rk.htm#network4 тока не стринг получается, а лонгинт... Использовал пример! Сети нет а выдал другой адресс (не 127.0.0.1) да и ещё без точек, а раставлять самим невозможно тк строку вида 164001002003 не выдеёт! Это неудобно! Есть ли ещё какой-ни-дь пример Да и ещё Цитата Да и ещё как отправить файл (или папку) по локалке с програссом копирования! Всех с новым годом |
Сообщ.
#21
,
|
|
|
Вот что меня интересует: Mailslot - альтернатива winpopup или он ее и использует?
|
Сообщ.
#22
,
|
|
|
на счет определения своего IP
ниже приведу две ф-ции - если их вызвать так result:=GetIPByHostName(GetHostNameByIP('')) то в результат выдаст как раз свой IP function GetHostNameByIP(IP:PChar):string; var wVersionRequested : WORD; wsaData : TWSAData; Addr: LongWord; p: PHostEnt; begin result:='?'; wVersionRequested := MAKEWORD(1, 1); WSAStartup(wVersionRequested, wsaData); Addr:=inet_addr(IP); p:=GetHostByAddr(@Addr,128,AF_INET); WSACleanup; if p<>nil then result:=p^.h_Name; end; function GetIPByHostName(const dn:string):string; type TaPInAddr = array[0..250] of PInAddr; PaPInAddr = ^TaPInAddr; var r: PHostEnt; wsaData: TWSAData; pptr: PaPInAddr; i: integer; s: string; begin WSAStartup($0101, wsaData); r:=gethostbyname(PChar(dn)); if r=nil then begin result:='?'; exit; end; pptr:=PaPInAddr(r^.h_addr_list); i:=0; while pptr^[i]<>nil do begin s:=inet_ntoa(pptr^[0]^); inc(i); end; WSACleanup; result:=s; end; зы: ф-ции писались когда-то давно - если покажутся слегка корявые - то извините... Добавлено в : млин, чуть не забыл uses WinSock; |
Сообщ.
#23
,
|
|
|
А у меня другой вопрос:
пишу что-то вроде чата, но не хочется забивать трафик.....при посылке сообщения с сервера он посылается на все соединения...а хотелось бы чтобы посылалось именно выбранному адресату.....как это лучше сделать....привязка к IP или может имя компьютера...и как это реализовать |
Сообщ.
#24
,
|
|
|
Цитата Invader, 19.01.04, 16:31 пишу что-то вроде чата, но не хочется забивать трафик.....при посылке сообщения с сервера он посылается на все соединения...а хотелось бы чтобы посылалось именно выбранному адресату.....как это лучше сделать что ж это за чат такой который всем отправляет? надож отсылать на конктерное соединение (ServerSocket1.Socket.Connections[<номер соединения>]) это если через сокеты - хотя я наверно делал бы через слоты... |
Сообщ.
#25
,
|
|
|
люди а как релизовать массовую расылку через Клиент Сокет если на других машинах уже открыт Сервер Сокет?
|
Сообщ.
#26
,
|
|
|
Цитата люди а как релизовать массовую расылку через Клиент Сокет если на других машинах уже открыт Сервер Сокет? Я делал так: Один сервер - все остальные клиенты. Все клиенты шлют серверу, сервер рассылает всем. Потом я от этой схемы отказался ибо глюкаво и медленно. Сейчас юзаю mailslot. Вроде удобно. Хотя сам не знаю как с его помощь послать сообщение WinPopup'у да и в инете по IP он тоже вроде не пашет. |
Сообщ.
#27
,
|
|
|
Цитата Diamond, 20.01.04, 02:15 Хотя сам не знаю как с его помощь послать сообщение WinPopup'у через \MAILSLOT\MESSNGR (уже кажись писАл) Цитата Diamond, 20.01.04, 02:15 и в инете по IP он тоже вроде не пашет да не пашет - это локально-сетевая фишка... |
Сообщ.
#28
,
|
|
|
ZEE,
Цитата ServerSocket1.Socket.Connections[<номер соединения>] я так и делаю......ой а че это я тогда тему поднял то есть сервер получает сообщение от клиента, запоминает его номер, а потом выдает ответ на этот же номер.....так чтоли?! ну я что-то торможу в последнее время...все...все...надо ночью спать |
Сообщ.
#29
,
|
|
|
Цитата сервер получает сообщение от клиента, запоминает его номер, а потом выдает ответ на этот же номер Ну и что? Или клиент своих сообений не должен видеть? Заодно и проверяешь дошло сообщение до сервера или нет. Траффик конечно забиваеться, но если это не критично, то можно сделать и так. |
Сообщ.
#30
,
|
|
|
Diamond,
меня другое волнует...не знаю как сделать так чтобы сервер знал номер клиента...допустим почти одновременно присоединились несколько клиентов...каждому надо разослать сообщение но незнаю как узнать номера соединения для определенного клиента |
Сообщ.
#31
,
|
|
|
Ну во-первых клиенты могут посылать в начале сообщения заголовок где они указывают кто они, но это масло масленное т.к. в заголовке IP пакета и так содержиться нужна инфа. Если клиент присоеденился то в событие сервера указывается параметр Socket так вот если ты напишешь Socket.SendText();то отправишь сообщение тому кто только что присоединился. Может отлавливать события OnClientConncet и OnAccept. Вообще у меня такой проблемы не возникало т.к. если посмотреть инфу Server.Socket.RemoteHost, то увидишь информацию о том клиенте который последним совершил обращение к серверу.
|