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.
이것으로 해보세요.
그런데 전 개인적으로 이것보다는 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.
>
>