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

SOCKET傳輸的問題?

答題得分者是:Stallion
裝傻
一般會員


發表:11
回覆:14
積分:5
註冊:2005-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-25 22:18:39 IP:60.248.xxx.xxx 未訂閱
各位大大好: 上次我爬文看到有大大PO的SOCKET傳輸程式我就試著做一個但是當我傳輸只傳一個"1"時他竟然收不到不管我傳幾次都是這樣除非我在傳輸那打入"1111"以上的文字他才傳的出去為什麼內? 下面是我上傳的程式希望可以幫我看看我錯在哪內? 謝謝!! 
http://myweb.hinet.net/home8/adan1234/socket.rar
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-25 22:32:17 IP:211.22.xxx.xxx 未訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { //給予傳送的資料,把SendStatus設為「等待回應」,並打開計時器, char *pSend = new char[1024]; for(int i = 0;i<1024;i ) *pSend = NULL; //這邊改成這樣 //ShowMessage((char*)Edit1->Text); pSend = (char*)Edit1->Text.c_str(); SendStatus = WaitintResponse; ClientSocket1->Socket->SendBuf(pSend,Edit1->Text.Length() ); //這邊改成這樣 //Sleep(1000); Timer1->Enabled=true; delete pSend; } </textarea> ------------------- 學,然後知不足。
裝傻
一般會員


發表:11
回覆:14
積分:5
註冊:2005-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-26 09:34:56 IP:60.248.xxx.xxx 未訂閱
謝謝大大的回應 狀況還是一樣內 我發現你要是先傳"1111" 再傳"1"就可以成功收到 但是要是一開始傳"1"就失敗 到底為什麼內?
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-26 20:20:20 IP:211.22.xxx.xxx 未訂閱
會嗎?我的都正常喔~先傳1也可以,兩個地方你都改了嗎? ------------------- 學,然後知不足。
裝傻
一般會員


發表:11
回覆:14
積分:5
註冊:2005-03-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-27 16:41:05 IP:60.248.xxx.xxx 未訂閱
我都有照大大的改 不過我都會發生這樣的問題內 有時打中文字時也會發生
eath199
一般會員


發表:23
回覆:33
積分:16
註冊:2006-12-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-12-13 11:59:39 IP:59.124.xxx.xxx 訂閱
ClientSocket1->Socket->SendBuf(        A , B );
看到很多人都用這個指令傳送 自己也試了一下 有些問題想請教一下大家
請問上面那行紅色的A B兩個地方要填的格式是什麼??
送出的大小有限制ㄇ?? 2BYTE??
eath199
一般會員


發表:23
回覆:33
積分:16
註冊:2006-12-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-12-13 14:43:23 IP:203.203.xxx.xxx 訂閱
ClientSocket1->Socket->SendBuf( A , B );
請問我執行這行指令後 傳送的值都是B值
而B不是指傳送的大小ㄇ
cartor
一般會員


發表:0
回覆:7
積分:1
註冊:2005-04-07

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-02-05 11:14:50 IP:220.130.xxx.xxx 訂閱
BCB的Help中有寫, 可以參考BCB Help.

我沒用過這個VCL, 不過照BCB中的說明,
SendBuf()這個function是將void *buf送出(你指的A),
後面放的是void *buf的長度(你指的B),
我猜測中文的話(Big5)一個中文字的長度應該是2,
所以ClientSocket1->Socket->SendBuf("中",2)這樣寫應該就可以送出去了,
如果要送純文字, 我看了一下socket還有其他的function,
例如SendText()可以傳送存文字的部份.

用法:
int __fastcall SendBuf(void *Buf, int Count);
int __fastcall SendText(const AnsiString S);

還有蠻多可以用, 可以參考BCB Help.......


===================引 用 文 章===================
ClientSocket1->Socket->SendBuf(????????A???????,????????B???????? );
看到很多人都用這個指令傳送? 自己也試了一下? 有些問題想請教一下大家?
請問上面那行紅色的A B兩個地方要填的格式是什麼??
送出的大小有限制ㄇ???2BYTE??
系統時間:2017-10-23 12:11:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!