Q&A

  • UDP Socket Communication
Delphi 에서 UDP Scoket communcation 사용시, 궁금한 점이 있습니다.

C socket operation 에서는 recvfrom API 를 사용합니다:



recvfrom(sock, buf, len, NULL, (struct sockaddr*) &addr),addrlen) == SOCKET_ERROR) {



... }





message가 Socket에 received 되면, Program은 addr로부터 ip address 와 port 를 알수 있습니다.



그런데, Delphi TNMUDP component 의 OnDataReceived Handler에서는:





OnDataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String);



Source ip address는 알 수 있지만 port는 알 수 없습니다..



Source Port를 알 수 있는 방법이 있는지요?.

UDP Socket을 사용해서 Source Port를 알 수 있는 어떤 Solution이 있는지요.?



Thanks in advance.





1  COMMENTS
  • Profile
    이정욱 1999.09.09 03:38
    UDP.RemotePort 라는 프로퍼티가 있습니다.

    이것으로 해보세요.



    그런데 전 개인적으로 이것보다는 WinShoe라는 컴포넌트를 사용합니다.

    이 NM인터넷 컴포넌트보다 훨씬 낳은것 같더군요.



    한델 자료실에 가시면 있구요. 물론 공짜입니다.

    이것에서 UDPListener라는 컴포넌트가 있는데 이곳에서는 포트까지 들어옵니다.



    참고하세요.



    Yang 께서 말씀하시기를...

    > Delphi 에서 UDP Scoket communcation 사용시, 궁금한 점이 있습니다.

    > C socket operation 에서는 recvfrom API 를 사용합니다:

    >

    > recvfrom(sock, buf, len, NULL, (struct sockaddr*) &addr),addrlen) == SOCKET_ERROR) {

    >

    > ... }

    >

    >

    > message가 Socket에 received 되면, Program은 addr로부터 ip address 와 port 를 알수 있습니다.

    >

    > 그런데, Delphi TNMUDP component 의 OnDataReceived Handler에서는:

    >

    >

    > OnDataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String);

    >

    > Source ip address는 알 수 있지만 port는 알 수 없습니다..

    >

    > Source Port를 알 수 있는 방법이 있는지요?.

    > UDP Socket을 사용해서 Source Port를 알 수 있는 어떤 Solution이 있는지요.?

    >

    > Thanks in advance.

    >

    >