Socket資料接收的問題 |
答題得分者是:jimmy_and_you
|
jsty
一般會員 發表:1 回覆:1 積分:0 註冊:2004-04-29 發送簡訊給我 |
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 發送簡訊給我 |
引言: 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 發送簡訊給我 |
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 發送簡訊給我 |
唉..還有地方打錯...真是抱歉... 恐怕你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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |