Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];

Вниз

IRC & Socket   Найти похожие ветки 

 
Noodlez   (2002-11-28 22:21) [0]

Проблема проста до безобразия. Путём долгих, изнурительных экспериментов выявлено :
При вызове Юзером юзера по DCC протоколу ему посылается текст:
<privmsg z123 DCC CHAT chat 2130706433 4000>
z123 - имя кому посылается
4000 - порт, там связь на прямую открывается и надо его указывать, т.е. порт на котором ты у себя откпываешь SocketServer.
2130706433 - некое число, догадываюсь что это спец формат адреса для Сокета, эдакий закодированный IP :). Но вот беда ... Получить то его можно :
serversocket1.Socket.Addr, а как преобразовать в String?

Может я ошибаюсь и это какое-то другое чистло ?
Плз если кто знает подскожите как получить СТРОКОВОЕ выражение для этого значения.


 
Digitman   (2002-11-29 08:16) [1]


> ему посылается текст



> 2130706433 - некое число


Нестыковочка) ... Сам же говоришь - посылается ТЕКСТ !
Т.е. 2130706433 - это уже СТРОКОВОЕ представление некоего числа.
А вот является ли оно "закодированным" IP-адресом - эт еще "бабушка надвое сказала")


> эдакий закодированный IP


На основании чего такие "догадки" ?


 
Noodlez   (2002-11-29 13:21) [2]

Просто один юзер посылает другому приглашение, указывая свой IP а далее следует порт. Это подтверждено опытами.
а чисто 2130706433 я недавно раскусил - 127.0.0.1 зашифровано хитрожопым способом, но проблема получения этого значения в строковом виде осталась !


 
Digitman   (2002-11-29 13:49) [3]

Уж не знаю , чего ты там "кусал", но мне никак не понять, какую еще строку тебе нужно поиметь... вот это вот "2130706433" и так в строковом формате ты получаешь)

Или ты хочешь получить строковое представление УЖЕ ГОТОВОГО (расшифрованного уже тобой !) IP-адреса ? Если так , то см. ф-цию Winsock inet_ntoa()


 
Noodlez   (2002-11-29 18:10) [4]

Плачу
Мне надо адрес моего компутера в виде "2130706433" - строковое выражение in_addr.
in_addr->String.
Обьясни мне, глупому, как бы сделал ты.


 
Morfein   (2002-11-29 20:45) [5]

Не извращайся со своими догадками, а посмотри спецификацию
IRC протокола - RFC1459


 
Noodlez   (2002-11-29 21:39) [6]

Где ? всё перерыл ...


 
Noodlez   (2002-11-29 21:43) [7]

Да вообщето я всё уже сделал /каналы/сообщения/фичи, осталось только вызов на DCC. Как получить адрес своего компа в формате in_addr, представленным строкой.


 
Digitman   (2002-11-30 12:23) [8]

см. inet_addr()


 
Morfein   (2002-11-30 20:26) [9]

не-не... в формате in_addr, представленным строкой!

function GetLocalIp : string;
var
addr: TSockAddrIn;
phe: PHostEnt;
HostName: array[0..127] of char;
begin
GetHostName(@HostName, 128);
phe:=GetHostByName(@HostName);
if phe = nil then
exit
else
Result:=IntToStr(dword(plongint(Phe^.h_addr_list^)^));
end;


 
Noodlez   (2002-12-02 15:20) [10]

2 Morfein
Удивительно, но эта функция выдаёт неправильный результат.
После её расшифровки мы получаем не 127.0.0.1 а 0.0.0.127 или не 192.168.0.3 а 3.0.168.192 :)


 
Digitman   (2002-12-02 15:32) [11]

ну тебе все вот разжуй да в рот положи да проглоти за тебя)


> Удивительно, но эта функция выдаёт неправильный результат.


Как раз правильный здесь результат, ибо это - стандартный и документированный сетевой порядок, а не Intel-порядок.
А для преобразования из одного порядка в другой в Winsock есть спец.ф-ции


 
Malder   (2002-12-02 23:51) [12]

Прямо таки все перерыл ?

RFC 1459 можешь найти на http://rfc.x42.com/ и в куче других мест. Только это устаревший, от 1993 года. Более новые RFC про IRC 2810-2813. И если ты их не читал, как ты можешь делать клиент IRC ?


 
Noodlez   (2002-12-03 12:25) [13]

Гы, методом научного тыка. Там ведь всё просто. Но есть 1 проблема ! в RFC не пишут про DCC ! Так что мне пришлось всё делать самому, различные снифы и т.д. :)


 
Noodlez   (2002-12-03 12:26) [14]

2 Digitman. thx


 
hogo   (2002-12-11 08:11) [15]

vortex.zip Vortex IRC v.2.0 (11kb) [ http://www.torry.net/vcl/internet/irc/vortex.zip]
ClusterDCC.pas here (ClusterDCC.pas) [ http://www.berzerk.net/vortex/ClusterDCC.pas]


 
Noodlez   (2002-12-13 01:18) [16]

2 hogo
Всё это уже было, пользование чужих компонентов - направленый вред уму.


 
mircscripts   (2003-01-30 19:07) [17]

Где можно скачать исходник IRC Server"a ??? скиньте на мыло ссылку плз


 
SeNtiMeL   (2003-02-03 02:14) [18]

TO NOODLEZ:
Скажи а как ты реализовал, чтобы текст в RichEdit добавлялся снизу, а не сверху как обычно ?
Я пишу чат для своей сети... И не могу найти решения....



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
8-76519
Writer_
2002-12-12 16:43
2003.03.24
тесселяция в OpenGL


1-76399
GAlexandr
2003-03-13 13:08
2003.03.24
Чтение из TWriter


6-76564
Serge_T
2003-02-01 23:57
2003.03.24
WinSock


1-76432
Opera
2003-03-11 13:06
2003.03.24
Текст


14-76584
SergeN
2003-03-06 09:35
2003.03.24
Самая популярная песня 20 века





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский