EZRidn wrote:
Hello,

I have been trying to determine how to use UDP sockets. I have run the
sample programs and can send messages which the listening socket picks up.
Now my problem is, based upon the message received I may want to send a
message back to the originating machine. To do this do I have to have a
seperate socket that sends the message, or can I send the message using the
listening socket. Could someone show me a snippit of sample code that would
demonstrate the proper way to accomplish this.

This is a quick implementation of an UDP echo server.
WS is a TWSocket, listening on some port with proto=udp.

procedure TReceiver.WSDataAvailable(Sender: TObject; Error: Word);
var
  Src    : TSockAddr;
  SrcLen : Integer;
  size : integer;
  TempRXBuf : array[0..2047] of char;
begin
  SrcLen := SizeOf(Src);
  size := WS.ReceiveFrom(@TempRXBuf[0],sizeof(TempRXBuf),Src,SrcLen);
  if size>0 then
  begin
    WS.SendTo(Src,SrcLen,@TempRXBuf[0],size);
  end;
end;

To detect remote IP and port, use:

PeerIP := StrPas(inet_ntoa(Src.sin_addr));
PeerPort := IntToStr(ntohs(Src.sin_port));

Regards
--
Marcello Vezzelli
CTO
Software Development Department
E-Works s.r.l.
tel. +39 059 2929081
fax +39 059 2925035
Direzionale 70 - Via Giardini 456/c
41100 Modena - Italy

---------------------------------------------------------------------
La presente comunicazione, che potrebbe contenere informazioni riservate e/o protette da segreto professionale, è indirizzata esclusivamente ai destinatari della medesima qui indicati. Le opinioni, le conclusioni e le altre informazioni qui contenute, che non siano relative alla nostra attività caratteristica, devono essere considerate come non inviate né avvalorate da noi. Tutti i pareri e le informazioni qui contenuti sono soggetti ai termini ed alle condizioni previsti dagli accordi che regolano il nostro rapporto con il cliente. Nel caso in cui abbiate ricevuto per errore la presente comunicazione, vogliate cortesemente darcene immediata notizia, rispondendo a questo stesso indirizzo di e-mail, e poi procedere alla cancellazione di questo messaggio dal Vostro sistema. E' strettamente proibito e potrebbe essere fonte di violazione di legge qualsiasi uso, comunicazione, copia o diffusione dei contenuti di questa comunicazione da parte di chi la abbia ricevuta per errore o in violazione degli scopi della presente.
---------------------------------------------------------------------
This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of this firm, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. If you have received this communication in error, please notify us immediately by responding to this email and then delete it from your system. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful.

--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to