全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2565
推到 Plurk!
推到 Facebook!

TServerSocket與TClientSocket接收訊息的問題

尚未結案
angress
一般會員


發表:2
回覆:0
積分:0
註冊:2005-03-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-30 23:41:57 IP:163.28.xxx.xxx 未訂閱
//-----------------------加入Communication----------------------// void __fastcall TForm1::Listen1Click(TObject *Sender) {         Listen1->Checked = !Listen1->Checked;         if (Listen1->Checked)         {                 ClientSocket1->Active = false;                 ServerSocket1->Active = true;                 StatusBar1->SimpleText = "Listening..";         }         else         {                 if (ServerSocket1->Active)                 {                 ServerSocket1->Active = false;                 }         StatusBar1->Panels->Items[0]->Text = " ";         } } //---------------------------------------------------------------------------    void __fastcall TForm1::Connect1Click(TObject *Sender) {         if (ClientSocket1->Active)         {                 ClientSocket1->Active = false;         }         if (InputQuery("Compter connect to","Address Name:",Server))         {                 if (Server.Length()>0)                 {                         ClientSocket1->Host = Server;                         ClientSocket1->Active = true;                         Listen1->Checked = false;                 }         } } //---------------------------------------------------------------------------    void __fastcall TForm1::Exit1Click(TObject *Sender) {            ServerSocket1->Close();         ClientSocket1->Close();         Close(); } //---------------------------------------------------------------------------        void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,       TCustomWinSocket *Socket) {         StatusBar1->SimpleText="連接到:"+Server;            Memo1->Lines->Clear();         Memo2->Lines->Clear();    } //---------------------------------------------------------------------------    void __fastcall TForm1::DisConnect1Click(TObject *Sender) {         ClientSocket1->Active = false;         ServerSocket1->Active = true;         StatusBar1->Panels->Items[0]->Text = "Disconnect.."; } //---------------------------------------------------------------------------    void __fastcall TForm1::ServerSocket1Accept(TObject *Sender,       TCustomWinSocket *Socket) {         Memo1->Lines->Clear();         IsServer=true;                  StatusBar1->SimpleText="connection to:"+Socket->RemoteAddress;          } //--------------------------------------------------------------------------- void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,       TCustomWinSocket *Socket) {       StatusBar1->SimpleText=""; } //--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,       TCustomWinSocket *Socket) {         int i=ListBox1->Items->IndexOf(Socket->RemoteAddress);    if(i>=0)    {       ListBox1->Items->Delete(i);    }            StatusBar1->SimpleText="正在監聽...";         ii = ii - 1; } //-------------------------------------------------------------------void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,       TCustomWinSocket *Socket/*, AnsiString allow_parity_0*/) {    這裡會接收其他三台筆記型電腦所傳送的訊息 (接收的訊息是10個數字形成的字串)    這裡會利用條件判別所接都的資料是否收齊之後  例如if(counter==3)之類的辨別條件 將訊息送出(送出的訊息是10個數字形成的字串) ServerSocket1->Socket->Connections[i]->SendText(Data); {    //--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,       TCustomWinSocket *Socket) {       int j=ListBox1->Items->IndexOf(Socket->RemoteAddress);    if(j<0) { ListBox1->Items->Add(Socket->RemoteAddress); } ii = ii 1; // Memo1->Lines->Clear(); ** } //------------------------------------------------------------------- void __fastcall TForm1::ServerSocket1ClientError(TObject *Sender, TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode) { ErrorCode = 0; for(int i=0; iSocket->ActiveConnections; i ) { if(Socket->RemoteAddress == ServerSocket1->Socket->Connections[i]->RemoteAddress) { ServerSocket1->Socket->Disconnect(i); } } Socket->Close(); } //--------------------------------------------------------------------------- 以上程式是我利用筆記型電腦無線網路上用AP架設的LAN,當SERVER對兩台Client端傳送接收訊息都OK,但如果是對三台Client端的話,必須要把筆記型電腦關機後,在開機才有辦法傳送接收,若沒重開機的情況下沒辦法達成傳送接收的效果,以上的電腦我皆適用筆記型電腦,不知是不是要寫清BUFFER之類的程式還是哪裡有錯,小弟新手上路,煩請各位高手請惑
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-31 00:31:44 IP:218.168.xxx.xxx 未訂閱
您好    PO程式碼的方式與版規說明請參考下面連結,煩請修改謝謝您的配合 >
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-18 17:32:26 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-03-29 14:57:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!