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

Socket資料接收的問題

答題得分者是:jimmy_and_you
jsty
一般會員


發表:1
回覆:1
積分:0
註冊:2004-04-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-05 20:41:01 IP:211.23.xxx.xxx 未訂閱
client端程式(這是放在嵌入式板子上) ---- int create_socket; int bufsize = 1024; int *buffer = malloc(bufsize); //... //將資料丟出去... send(create_socket,buffer,bufsize,0); Server端程式(使用BCB) ----- //不知道該不該跟他一樣用1024設定..不過有點笨 int receivebuf_len=1024; //Socket->ReceiveLength(); int *receivebuf=new int[receivebuf_len]; Socket->ReceiveBuf(receivebuf,receivebuf_len); Memo1->Lines->Add(IntToStr(receivebuf)); 不知道是不是印出來的時候錯了.. 他傳的資料是FFFFFFFF(固定長度的16進位) 我是SERVER端.我要把他的數字當作字串放進資料庫 卻一直收不下來...這應該很簡單 但是我找來找去卻找不到答案 請各為大大幫我看一下哪有問題 希望不要去動Client的程式端比較好 感謝...
jimmy_and_you
初階會員


發表:20
回覆:74
積分:33
註冊:2003-05-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-06 13:57:52 IP:203.70.xxx.xxx 未訂閱
引言: client端程式(這是放在嵌入式板子上) ---- int create_socket; int bufsize = 1024; int *buffer = malloc(bufsize); //... //將資料丟出去... send(create_socket,buffer,bufsize,0); Server端程式(使用BCB) ----- //不知道該不該跟他一樣用1024設定..不過有點笨 int receivebuf_len=1024; //Socket->ReceiveLength(); int *receivebuf=new int[receivebuf_len]; Socket->ReceiveBuf(receivebuf,receivebuf_len); Memo1->Lines->Add(IntToStr(receivebuf)); 不知道是不是印出來的時候錯了.. 他傳的資料是FFFFFFFF(固定長度的16進位) 我是SERVER端.我要把他的數字當作字串放進資料庫 卻一直收不下來...這應該很簡單 但是我找來找去卻找不到答案 請各為大大幫我看一下哪有問題 希望不要去動Client的程式端比較好 感謝...
恐怕你Server端的程式都有問題,改成下面的方式看看 Server端
 
        int receivebuf_len=1024; //Socket->ReceiveLength();
        int *receivebuf=new char[receivebuf_len/sizeof(int)];
        Socket->ReceiveBuf(receivebuf,receivebuf_len);            AnsiString str = "";
        AnsiString tmp;
        Memo1->Clear();
        for(int i=0 ; i<(receivebuf_len/sizeof(int)) ; i   )
        {
                tmp.printf(" X", (unsigned int)boot[i]);
                str = str   tmp;
                if( (i%4)==3 )
                {
                        Memo1->Lines->Add(str);  //每4個整數換行
                        str = "";
                }
        }
jimmy_and_you
初階會員


發表:20
回覆:74
積分:33
註冊:2003-05-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-06 14:03:32 IP:203.70.xxx.xxx 未訂閱
Sorry 有地方打錯    恐怕你Server端的程式都有問題,改成下面的方式看看 Server端
 
        int receivebuf_len=1024; //Socket->ReceiveLength();
        int *receivebuf=new char[receivebuf_len/sizeof(int)];
        Socket->ReceiveBuf(receivebuf,receivebuf_len);            AnsiString str = "";
        AnsiString tmp;
        Memo1->Clear();
        for(int i=0 ; i<(receivebuf_len/sizeof(int)) ; i   )
        {
                tmp.printf(" X", (unsigned int)receivebuf[i]); //剛剛這行打錯...
                str = str   tmp;
                if( (i%4)==3 )
                {
                        Memo1->Lines->Add(str);  //每4個整數換行
                        str = "";
                }
        }
jimmy_and_you
初階會員


發表:20
回覆:74
積分:33
註冊:2003-05-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-06 14:09:34 IP:61.70.xxx.xxx 未訂閱
唉..還有地方打錯...真是抱歉...    恐怕你Server端的程式都有問題,改成下面的方式看看 Server端
 
        int receivebuf_len=1024; //Socket->ReceiveLength();
        int *receivebuf=new int[receivebuf_len/sizeof(int)];  //剛剛這行打錯
        Socket->ReceiveBuf(receivebuf,receivebuf_len);            AnsiString str = "";
        AnsiString tmp;
        Memo1->Clear();
        for(int i=0 ; i<(receivebuf_len/sizeof(int)) ; i   )
        {
                tmp.printf(" X", (unsigned int)receivebuf[i]); //剛剛這行打錯...
                str = str   tmp;
                if( (i%4)==3 )
                {
                        Memo1->Lines->Add(str);  //每4個整數換行
                        str = "";
                }
        }
也請版主大大刪除我前2篇的回覆..tkx
jsty
一般會員


發表:1
回覆:1
積分:0
註冊:2004-04-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-06 14:32:02 IP:211.23.xxx.xxx 未訂閱
雖然還是有一點小問題 但是我已經知道了問題點了 以及解決方法..多謝這位大大 感恩啦
系統時間:2024-05-05 9:09:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!