airto 0 Denunciar post Postado Agosto 13, 2004 tenho uma aplicacao no servidor, que precisa enviar mensagem, para os computadores da rede interna, gostaria de saber como consigo usar socket?algum exemplo?obrigado Compartilhar este post Link para o post Compartilhar em outros sites
hcr 0 Denunciar post Postado Agosto 13, 2004 Irtão, precisa ser por socket ? tenho um exemplo só que não é socket... ai vai :function NetSend(dest, source, msg: string): longint; type TNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar; buf: PWideChar; buflen: Cardinal): longint; stdcall;var NetMessageBufferSend: TNetMessageBufferSendFunction; SourceWideChar: PWideChar; DestWideChar: PWideChar; MessagetextWideChar: PWideChar; Handle: THandle;begin Handle := LoadLibrary('NETAPI32.DLL'); if Handle = 0 then begin Result := GetLastError; exit; end; @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend'); if @NetMessageBufferSend = nil then begin Result := GetLastError; exit; end; MessagetextWideChar := nil; SourceWideChar := nil; DestWideChar := nil; try GetMem(MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1); GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1); StringToWideChar(msg, MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1); StringToWideChar(Dest, DestWideChar, 20 * SizeOf(WideChar) + 1); if source = '' then result := NetMessageBufferSend(nil, DestWideChar, nil, MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1) else begin GetMem(SourceWideChar, 20 * SizeOf(WideChar) + 1); StringToWideChar(source, SourceWideChar, 20 * SizeOf(WideChar) + 1); result := NetMessageBufferSend(nil, DestWideChar, SourceWideChar, MessagetextWideChar, Length(msg) * SizeOf(WideChar) + 1); freemem(SourceWideChar); end; finally FreeMem(MessagetextWideChar); FreeLibrary(Handle); end;end;Abraço. Henrique Fioto Compartilhar este post Link para o post Compartilhar em outros sites
airto 0 Denunciar post Postado Agosto 13, 2004 problema, que não são todas de uma vez, e conforme o result de select, que trago o ip, no qual devo enviar? pelo que entendi na func. e´para todas as maquinas Compartilhar este post Link para o post Compartilhar em outros sites
hcr 0 Denunciar post Postado Agosto 13, 2004 não testei o exemplo anterior pra te dizer como ele funciona, mas se você passar como parametros o IP da maq destino, seu IP ( ou o do Server ) e a mensagem, será que não dá certo ?outra coisa fiotão... não sei se ajuda, mas o SQL server tem uma procedure que roda comandos do DOS: xp_cmdshell 'net send maqHenrique Mensagem', NO_OUTPUTessa eu já testei e funcionou aqui... mas não sei se te ajuda.AbraçoHenrique Compartilhar este post Link para o post Compartilhar em outros sites