請問Socket.ReceiveBuf該如何使用 |
尚未結案
|
KKmin
一般會員 發表:1 回覆:2 積分:0 註冊:2004-07-21 發送簡訊給我 |
各位前輩你們好
請問一下…若server端傳送的是byte的資料
那我應該是利用receivebuf來收資料
我的程式如下
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var data:array of byte; I,j:integer; begin i:=ClientSocket1.Socket.ReceiveLength; SetLength(data,i 1); Socket.ReceiveBuf(data,i); for j:=1 to i do memo1.lines.add(inttostr(data[j]));,--->每次都出錯在這行 end;我有去參考過其他的文章 大部份都是針對傳送檔案的方式寫的 也有c 類似的問題 我將c 的寫法改為delphi的方式 但是一樣不行 請問是那裡錯誤的觀念 麻煩幫忙一下…謝謝 |
KKmin
一般會員 發表:1 回覆:2 積分:0 註冊:2004-07-21 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
引言:for j:=1 to i do 這行改成 for j := 0 to i - 1 do 試試 -- 向 KTop 的弟兄們致敬! 發表人 - hagar 於 2004/07/22 08:49:45procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var data:array of byte; I,j:integer; begin i:=ClientSocket1.Socket.ReceiveLength; SetLength(data,i 1); Socket.ReceiveBuf(data,i); for j:=1 to i do memo1.lines.add(inttostr(data[j]));,--->每次都出錯在這行 end; |
KKmin
一般會員 發表:1 回覆:2 積分:0 註冊:2004-07-21 發送簡訊給我 |
謝謝hagar大大的幫忙
這招試過…不行
昨天我的解決方式是
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var data:byte;--->設為單一變數 I,j:integer; begin Socket.ReceiveBuf(data,1);--->每次讀取一筆資料 memo1.lines.add(inttostr(data)); end;這樣就可以了 謝謝hagar大大 |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |