PDA

Просмотр полной версии : ЛАН мессанджер


tip4il
28.04.2007, 01:18
посоветуйте как реализовать на делфи ЛАН мессанджер.

begin_end
28.04.2007, 02:13
Если реализовывать без всякой клиентской части, то речь пойдёт о отсылке, подобной net send.

function WTD(AText:string):string;
var PText : PChar; MaxLength : integer;
begin
MaxLength:=length(AText)+1;
PText:=StrAlloc(MaxLength);
StrPCopy(PText,AText);
{$IFDEF WIN32}
CharToOEM(PText,PText); {32Bit}
{$ELSE}
AnsiToOEM(PText,PText); {16Bit}
{$ENDIF}
Result:=StrPas(PText);
StrDispose(PText);
end;

procedure SendNetMessage(AHost, AFromSt, AToSt, AMessageSt: string);
var
hSlot : THandle;
s : string;
cb : DWORD;
begin
hSlot := CreateFile(PChar('\\'+AHost+'\mailslot\messngr'),
GENERIC_WRITE, FILE_SHARE_READ, 0,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if hSlot <> INVALID_HANDLE_VALUE then
begin
AFromSt:=WTD(AFromSt);
AToSt:=WTD(AToSt);
AMessageSt:=WTD(AMessageSt);
s := AFromSt + #0 + AToSt + #0 + AMessageSt + #0;
cb := length(S);
WriteFile(hSlot, s[1], cb, cb, 0);
CloseHandle(hSlot);
end;
end;
Использовать так: SendNetMessage('имя_компа','от_кого' ,'кому','текст_сообщения');
Первый параметр не может быть IP-адресом, 2 и 3 могут пустовать. 4 может включать в себя символы перевода на новую строку.

sn0w
28.04.2007, 11:54
а можно бродкастить по удп, и не нужно никаких серверов и ничго подобного

tip4il
28.04.2007, 20:59
а можно бродкастить по удп, и не нужно никаких серверов и ничго подобного
можно поподробнее

gizmo
28.04.2007, 21:11
netsend жалко, у всех уже выключена служба. Помню, и спамили так =)

tip4il
28.04.2007, 21:23
мнеб желательно не через netsend

sn0w
02.05.2007, 18:29
сетевой транспорт: udp; прога которая стоит у каждого в локалке, отправляет пакет на бродкаст адрес этой подсети. т.е. если у тебя адрес 192.168.0.32 то прога шлет на 192.168.0.255. все тачки подсети получат этот пакет. в свою очередь удаленные юзеры получают инфу от тебя и ффсе... далее как реализуешь формат пакета. например НИК:СООБЩЕНИЕ итд итп.

slesh
02.05.2007, 18:35
хм. Есть много кульных программ. НА крайняк можно заюзать чтото типа SeChat'a
И зачем изобретать лисапед :)