Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

airto

socket mandar mensagem

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.