首先分為player端 和 server端
情形是 當玩家端按下確定後 server端沒反應 player端 程式
Unit1.cpp
//------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
TMemoryStream *gmsFile=NULL;
//-------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ClientSocket1->Address="163.XX.XXX.XX";
ClientSocket1->Port=4000;
ClientSocket1->Open();
gmsFile=new TMemoryStream;
}
__fastcall TForm1::~TForm1()
{
if(gmsFile) delete gmsFile;
ClientSocket1->Close();
}
//-------------------------------------------------------------------
void __fastcall TForm1::sendClick(TObject *Sender)
{
TMemoryStream *msFile=new TMemoryStream;
MYPACK mp; //建立封包 mp.pbThisData[0]=0;
mp.dwThisDataSize=10;
msFile->Read(mp.pbThisData, mp.dwThisDataSize);
ClientSocket1->Socket->SendBuf(&mp, sizeof(MYPACK));
Sleep(10);
delete msFile;
}
//------------------------------------------------------------------- Unit.h
//-------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//-------------------------------------------------------------------
#define MAX_STRLEN 16
#define MAX_DATASIZE 1024
//-------------------------------------------------------------------
typedef struct _MyPack
{
char szHeader[MAX_STRLEN];
DWORD dwThisDataSize;
BYTE pbThisData[MAX_DATASIZE];
} MYPACK;
//------------------------------------------------------------------- server端程式
//-------------------------------------------------------------------
#include
#pragma hdrstop #include "Unit1.h"
TMemoryStream *gmsFile=NULL;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
Tserver *server;
//---------------------------------------------------------------------------
__fastcall Tserver::Tserver(TComponent* Owner)
: TForm(Owner)
{
ServerSocket1->Port=4000;
ServerSocket1->Open();
gmsFile=new TMemoryStream;
}
__fastcall Tserver::~Tserver()
{
if(gmsFile) delete gmsFile;
ServerSocket1->Close();
}
//------------------------------------------------------------------- void __fastcall Tserver::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
MYPACK mp;
Socket->ReceiveBuf(&mp, sizeof(MYPACK)); AnsiString sz=(AnsiString)mp.szHeader;
gmsFile->Write(mp.pbThisData, mp.dwThisDataSize); if(mp.pbThisData[0]==0){
getmessage->Text="good"; //此反應沒出現
}
gmsFile->Clear();
}
------
時與不時的撿起身旁的拼圖碎片
不懂的部分 半解的部分 就像一塊拼圖
留於腦中 等待拼出完美解答的一天
這就是我的思路 我的創作方法
而我也接受 這作法所帶來的"代價" - 時間