소켓으로 Broadcasting 패킷을 날리려는 프로그램을 만들려고 하는데 도저히, 알 수가 없습니다. setsockopt에서 SO_BROADCAST옵션을 주고 broadcast 주소로 sendto를 해봤지만 동작하지 않습니다. 어떻게하면, Broadcast하는 프로그램을 만들 수 있나요?
p.s - 멀티캐스트 방식으로 짜는 거 말구요..
제가 사용하는 방법인데, 소켓 옵션으로 하는 방법도 있지만
브로드캐스트 주소로 전송을 하면 같은 효과가 나지요;;
/******************************************************************************* * Broadcasting data ******************************************************************************/ int BroadCasting(fd, port, buff, len) char *buff; int len, fd, port; { struct sockaddr_in svr; struct servent *se; int sz;
memset(&svr, 0x00, sizeof(struct sockaddr_in)); svr.sin_family = AF_INET; svr.sin_addr.s_addr = htonl(INADDR_BROADCAST); svr.sin_port = htons(port); sz = sendto(fd, buff, len, 0, (struct sockaddr *)&svr, sizeof(struct sockaddr_in)); return sz; }
-_-; 주소를 당연히 Broadcast주소로 했는데용...;;; 그래도 안되던데;; 위에꺼 되는 거 맞나요?
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: 소켓으로 BroadCasting..
제가 사용하는 방법인데,
소켓 옵션으로 하는 방법도 있지만
브로드캐스트 주소로 전송을 하면 같은 효과가 나지요;;
/*******************************************************************************
* Broadcasting data
******************************************************************************/
int BroadCasting(fd, port, buff, len)
char *buff;
int len, fd, port;
{
struct sockaddr_in svr;
struct servent *se;
int sz;
memset(&svr, 0x00, sizeof(struct sockaddr_in));
svr.sin_family = AF_INET;
svr.sin_addr.s_addr = htonl(INADDR_BROADCAST);
svr.sin_port = htons(port);
sz = sendto(fd, buff, len, 0, (struct sockaddr *)&svr,
sizeof(struct sockaddr_in));
return sz;
}
Re^2: 소켓으로 BroadCasting..
-_-; 주소를 당연히 Broadcast주소로 했는데용...;;;
그래도 안되던데;;
위에꺼 되는 거 맞나요?
댓글 달기