以下のようなプログラムを組んでみたのですが、turnの値だけ変わりません。
原因はなんでしょうか?
それに受信側のプログラムを閉じたときによくわからないエラーが出てきます。
Run-Time-Check Failuer#2
これは一体なんでしょうか?
OS:Windows7
ライブラリ:DXLIB
言語:C
コンパイラ:VisualStudio2010
・送信側
#include"DxLib.h"
struct PLAYER{
int X;
int Y;
};
PLAYER P[2];
int ProcessLoop(){
if(ProcessMessage() != 0){ return 0; }
if(ClearDrawScreen() != 0){ return 0; }
return 1;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
SetOutApplicationLogValidFlag(FALSE);
ChangeWindowMode(TRUE);
SetDoubleStartValidFlag( TRUE ) ;
SetMainWindowText("送信側");
SetGraphMode(640, 480, 16);
SetBackgroundColor(0, 0, 0);
if(DxLib_Init() == -1 || SetDrawScreen(DX_SCREEN_BACK) != 0){ return -1; }
P[0].X = 1;
P[0].Y = 2;
P[1].X = 3;
P[1].Y = 4;
IPDATA Ip;
Ip.d1 = 127;
Ip.d2 = 0;
Ip.d3 = 0;
Ip.d4 = 1;
int NetHandle;
NetHandle = ConnectNetWork(Ip, 9850);
int Flag = false;
int turn = 0;
while(ProcessLoop() && !CheckHitKey(KEY_INPUT_ESCAPE)){
DrawFormatString(0,0,0xffffff, "Sキーでデータを送信します");
if(CheckHitKey(KEY_INPUT_S)){
NetWorkSend(NetHandle , &P[0], sizeof(PLAYER));
NetWorkSend(NetHandle , &P[1], sizeof(PLAYER));
NetWorkSend(NetHandle , &turn, sizeof(int));
break;
}
ScreenFlip();
}
CloseNetWork(NetHandle);
DxLib_End();
return 0;
}
#include"DxLib.h"
struct PLAYER{
int X;
int Y;
};
int ProcessLoop(){
if(ProcessMessage() != 0){ return 0; }
if(ClearDrawScreen() != 0){ return 0; }
return 1;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
SetOutApplicationLogValidFlag(FALSE);
ChangeWindowMode(TRUE);
SetDoubleStartValidFlag( TRUE ) ;
SetMainWindowText("受信側");
SetGraphMode(640, 480, 16);
SetBackgroundColor(0, 0, 0);
if(DxLib_Init() == -1 || SetDrawScreen(DX_SCREEN_BACK) != 0){ return -1; }
PLAYER P[2] = {9,9,9,9};
int NetHandle = -1;
int DataLength ;
int turn = 9;
PreparationListenNetWork(9850);
while(ProcessLoop() && !CheckHitKey(KEY_INPUT_ESCAPE)){
if(NetHandle == -1){
DrawFormatString(0,0,0xffffff, "接続待ちです");
NetHandle = GetNewAcceptNetWork();
}
if(NetHandle != -1){
DataLength = GetNetWorkDataLength(NetHandle);
NetWorkRecv(NetHandle, &P[0], DataLength);
DataLength = GetNetWorkDataLength(NetHandle);
NetWorkRecv(NetHandle, &P[1], DataLength);
DataLength = GetNetWorkDataLength(NetHandle);
NetWorkRecv(NetHandle, &turn, DataLength);
DrawFormatString(0,0,0xffffff, "%d", P[0].X);
DrawFormatString(0,20,0xffffff, "%d", P[0].Y);
DrawFormatString(0,40,0xffffff, "%d", P[1].X);
DrawFormatString(0,60,0xffffff, "%d", P[1].Y);
DrawFormatString(0,80,0xffffff, "%d", turn);
}
ScreenFlip();
}
DxLib_End();
return 0;
}