線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1989
推到 Plurk!
推到 Facebook!

請問透過Socket如何由Client送Command到Server端呢??

答題得分者是:RaynorPao
shing187
一般會員


發表:45
回覆:63
積分:21
註冊:2003-01-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-06 18:50:32 IP:211.78.xxx.xxx 未訂閱
請問透過Socket如何由Client送Command到Server端呢??
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-06 19:44:39 IP:61.221.xxx.xxx 未訂閱
引言: 請問透過Socket如何由Client送Command到Server端呢??
shing187 你好: (1)請問~~你想要傳送什麼樣的 command 呢?? ( > ( > < class="code"> // Client void __fastcall TClientForm::btnSendCommand(TObject *Sender) { ClientSocket1->Socket->SendText("MyCommand"); } // Server void __fastcall TServerForm::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { ShowMessage(Socket->ReceiveText()); } -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/02/06 22:02:07
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
shing187
一般會員


發表:45
回覆:63
積分:21
註冊:2003-01-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-07 09:52:15 IP:211.78.xxx.xxx 未訂閱
1.Client/Server有制定好的PACKET STRUCTURE 例如.Typedet struct PACKETTEST { DWORD command; char test1[128]; char test2[128]; }PACKETTEST; Client端傳送 command:0x00000011, test1:demo, test2:demo Server端會回傳給Client端另一個struct的data給Client端 2.所以我想傳送的command應該是struct架構的東西 3.請問client該如何傳送給server與如何接收server傳送過來的struct 謝謝指教
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-07 10:47:14 IP:203.73.xxx.xxx 未訂閱
引言: 1.Client/Server有制定好的PACKET STRUCTURE 例如.Typedet struct PACKETTEST { DWORD command; char test1[128]; char test2[128]; }PACKETTEST; Client端傳送 command:0x00000011, test1:demo, test2:demo Server端會回傳給Client端另一個struct的data給Client端 2.所以我想傳送的command應該是struct架構的東西 3.請問client該如何傳送給server與如何接收server傳送過來的struct
shing187 你好: 請參考以下的做法 < class="code"> // Server typedef struct _PACKETTEST { DWORD command; char test1[128]; char test2[128]; } PACKETTEST, *PPACKETTEST; void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { char szBuf[256]; PACKETTEST pt; Socket->ReceiveBuf(&pt, sizeof(PACKETTEST)); sprintf(szBuf, "command=%d\ntest1=%s\ntest2=%s", pt.command, pt.test1, pt.test2); ShowMessage(szBuf); } void __fastcall TForm1::FormCreate(TObject *Sender) { ServerSocket1->Port=4000; ServerSocket1->Open(); } void __fastcall TForm1::FormDestroy(TObject *Sender) { ServerSocket1->Close(); } // Client typedef struct _PACKETTEST { DWORD command; char test1[128]; char test2[128]; } PACKETTEST, *PPACKETTEST; void __fastcall TForm1::Button1Click(TObject *Sender) { PACKETTEST pt; pt.command=0x11; lstrcpy(pt.test1, "demo"); lstrcpy(pt.test2, "demo"); ClientSocket1->Socket->SendBuf(&pt, sizeof(PACKETTEST)); } void __fastcall TForm1::FormCreate(TObject *Sender) { ClientSocket1->Address="xxx.xxx.xx.xxx"; ClientSocket1->Port=4000; ClientSocket1->Open(); } void __fastcall TForm1::FormDestroy(TObject *Sender) { ClientSocket1->Close(); } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
shing187
一般會員


發表:45
回覆:63
積分:21
註冊:2003-01-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-07 11:13:40 IP:211.78.xxx.xxx 未訂閱
RaynorPao你好.... 謝謝你的範例... 我還有問題想請教 1.如果我依照下面這種方式宣告struct會出現錯誤訊息 typedef struct _PACKETTEST { DWORD command; char test1[128]; char test2[128]; } PACKETTEST, *PPACKETTEST; 如果我依照上面這種方式宣告struct會出現錯誤訊息 如果不寫*PPACKETTEST則不會有問題 2.如果我沒有辦法知道server端程式的寫法,會不會有什麼問題?? 有方法可以解決嗎??現在我能控制的只有client端而已... 請指教....
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-07 11:21:21 IP:203.73.xxx.xxx 未訂閱
引言: RaynorPao你好.... 謝謝你的範例... 我還有問題想請教 1.如果我依照下面這種方式宣告struct會出現錯誤訊息 typedef struct _PACKETTEST { DWORD command; char test1[128]; char test2[128]; } PACKETTEST, *PPACKETTEST; 如果我依照上面這種方式宣告struct會出現錯誤訊息 如果不寫*PPACKETTEST則不會有問題 2.如果我沒有辦法知道server端程式的寫法,會不會有什麼問題?? 有方法可以解決嗎??現在我能控制的只有client端而已... 請指教....
shing187 你好:
(1)會錯誤?? 我的不會耶(Windows 2000 SP3, BCB 6.0 Update2)
   基本上~~我所有發表過文章中的程式碼,都是先經過  >
( >
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
shing187
一般會員


發表:45
回覆:63
積分:21
註冊:2003-01-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-07 11:39:36 IP:211.78.xxx.xxx 未訂閱
RaynorPao你好... (1)我的環境是(WIN XP SP1 and BCB5 SP1) 出現的錯誤訊息如下 1.宣告部分出現 [C Error] E2238 Multiple declaration for 'TForm1::PACKETTEST' 2.pt.command=0x11;等部份出現 [C Error] E2294 Structure required on left side of . or .* 這是因為環境產生的錯誤嗎?? (2)還有如果對方的工具不是BCB,會有什麼問題嗎?? 發表人 - shing187 於 2003/02/07 11:41:41
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-07 11:46:28 IP:203.73.xxx.xxx 未訂閱
引言: RaynorPao你好... (1)我的環境是(WIN XP SP1 and BCB5 SP1) 出現的錯誤訊息如下 1.宣告部分出現 [C Error] E2238 Multiple declaration for 'TForm1::PACKETTEST' 2.pt.command=0x11;等部份出現 [C Error] E2294 Structure required on left side of . or .* 這是因為環境產生的錯誤嗎?? (2)還有如果對方的工具不是BCB,會有什麼問題嗎??
shing187 你好:
(1)把 struct 的宣告,放在你的 TForm1 class 的外面,例如:
........................
#include "ScktComp.hpp"

typedef struct _PACKETTEST
{
   DWORD command;
   char test1[128];
   char test2[128];
} PACKETTEST, *PPACKETTEST;    //---------------------------------------------------------------------------
class TForm1 : public TForm
...........................
(2)基本上應該是不會有什麼問題的
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
shing187
一般會員


發表:45
回覆:63
積分:21
註冊:2003-01-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-02-07 11:58:35 IP:211.78.xxx.xxx 未訂閱
RaynorPao你好呀 把 struct 的宣告,放在你的 TForm1 class 的外面, 例如:........................ #include "ScktComp.hpp" typedef struct _PACKETTEST { DWORD command; char test1[128]; char test2[128]; } PACKETTEST, *PPACKETTEST; 我把宣告移出TForm1 class外面 還是出現一樣的錯誤訊息... 如果只有PACKETTEST 或是 *PACKETTEST 會有什麼問題嗎??
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-02-07 12:12:45 IP:203.73.xxx.xxx 未訂閱
引言: RaynorPao你好呀 把 struct 的宣告,放在你的 TForm1 class 的外面, 例如:........................ #include "ScktComp.hpp" typedef struct _PACKETTEST { DWORD command; char test1[128]; char test2[128]; } PACKETTEST, *PPACKETTEST; 我把宣告移出TForm1 class外面 還是出現一樣的錯誤訊息... 如果只有PACKETTEST 或是 *PACKETTEST 會有什麼問題嗎??
shing187 你好:
(1)不好意思,你把我問倒了,實在不了解你的錯誤訊息??
( >,因為其他的,你也暫時不
   會用到
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-04-25 21:33:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!