ConnectNetWork関数の戻り値についてですが、接続できないIPに対してConnectNetWorkを行った場合に、
エラーである-1以外の数値が帰ってくるのですが戻り値としては正しいものなのでしょうか?
また正しく接続できる設定時に、直下でGetNetWorkAcceptStateにて接続確認を行った場合、
未接続の結果が返ってきたのに実際には接続されていたりといったことが起きるようです
環境:VC++10
DxLib:最新のtest版
以下再現コード
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow ){
IPDATA Ip ;
int NetHandle ;
bool UseServerMode = true;//送信側、受信側切り替え
char str[256];
ChangeWindowMode(true);
SetDoubleStartValidFlag( TRUE );
if( DxLib_Init() == -1 )return -1;
Ip.d1 = 192 ;
Ip.d2 = 168 ;
Ip.d3 = 1 ;
Ip.d4 = 8 ;
if(UseServerMode){//サーバ処理
PreparationListenNetWork( 9850 ) ;
while( !ProcessMessage() && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ){
NetHandle = GetNewAcceptNetWork() ;
if( NetHandle != -1 ) break ;
}
StopListenNetWork() ;
if(NetHandle != -1 ){ //ちゃんと接続になる
sprintf(str,"接続中:%d",NetHandle);
MessageBox(NULL,str,"DebugInfo",MB_OK);
}
else{
sprintf(str,"未接続:%d",NetHandle);
MessageBox(NULL,str,"DebugInfo",MB_OK);
}
}
else{//クライアント処理
NetHandle = ConnectNetWork( Ip, 9850 ) ;
if(NetHandle == -1)MessageBox(NULL,"TCP接続失敗","DebugInfo",MB_OK);//すり抜ける
else{
if(GetNetWorkAcceptState(NetHandle)==1){
sprintf(str,"接続中:%d",NetHandle);
MessageBox(NULL,str,"DebugInfo",MB_OK);
}
else {//何故かこっちに入る
sprintf(str,"未接続:%d",NetHandle);
MessageBox(NULL,str,"DebugInfo",MB_OK);
}
}
}
DxLib_End();
return 0;
}