UDP ブロードキャスト送信

[戻る]
ルキア 2003/09/09(火) 15:16:46
はじめまして。
今、VC++を使ってBROADCAST送信を行おうとしているんですが、
どうもうまくいきません。
(UDP送信まで行ってません。ソケットのBROADCAST許可
ができていません。)
で、教えていただきたいのですが、
nErrorStatus = WSAStartup(MAKEWORD(2,0), &wsaData3);
if(nErrorStatus != 0){
 AddDisplayText("ERROR\r\n");
}
socket_3 = socket( AF_INET, SOCK_DGRAM, 0 );
if( socket_3 == INVALID_SOCKET ) { 
 AddDisplayText("ERROR\r\n");
}
int nLevel = SOL_SOCKET;
int nOption = SO_BROADCAST;
int nOptionValLen = sizeof(int);
BOOL nOptionValue;
int iRet;
iRet = getsockopt(socket_3,nLevel,nOption,
          (char *)nOptionValue,&nOptionValLen);
nOptionValue = TRUE;
iRet = setsockopt(socket_3,nLevel,nOption,
          (char *)nOptionValue,nOptionValLen);

上記のようなソースを本を参考にして(そのまま?)記述したのですが、
@getsockoptでERR(-1)が返却値になる。
Asetsockoptで吹っ飛ぶ。

どこかおかしいところがあるのでしょうか?
宜しくお願いします。

dairygoods 2003/09/09(火) 17:22:06
ヘルプには、第四引数にはオプション値を入れる領域への
ポインタを指定せよ、と書いてあります。

ルキア 2003/09/09(火) 17:35:51
[[解決]]
解決しました。
const FAR char * となってたので
単純にキャストしてるだけかと思ってました。
(参考ソースにも&が・・・・)

御迷惑お掛けしました。

dairygoodsさん、ありがとうございました。

古いスレッドには追加発言できません。