Форум: "Сети";
Текущий архив: 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