TCilentSocket 連線錯誤後,無法再啟動 |
缺席
|
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
__fastcall TForm1:TForm1(TComponent* Owner):TForm(Owner)
{
FClientSocket=new TClientSocket(NULL);
FClientSocket->OnClientSocketError;
FClientSocket->OnRead=OnClientSocketRead;
FClientSocket->ClientType=ctNonBlocking;
FClientSocket->Port=8888;
FClientSocket->Host=HostName;
}
void __fastcall TForm1:Button1Click(TObject* Sender)
{
FClientSocket->Socket->SendBuf(&MyData,sizeof(MyData));
}
void __fastcall TForm1::OnClientSocketError(System::TObject* Sender, TCustomWinSocket* Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode=0;
} 這些程式碼在連線無錯下都能正常動作
但是一但將主機關掉,第一次SendBuf會進入OnError
可是往後再SendBuf就不會進入了
就算再將主機連線給恢復,還是無法傳送資料,除非程式重新啟動
因為主機隨時都會藉由連線傳回資料(不見得是Client要求),所以無法在每次傳送時再New出來,
該如何解決ㄋ
我看不懂Delphi 能不能用BCB回答
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |