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

Indy 10 IdUDPClient1.SendBuffer

答題得分者是:jow
apple12
一般會員


發表:28
回覆:23
積分:10
註冊:2003-05-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-07 14:49:26 IP:202.64.xxx.xxx 訂閱
我用Indy 10

如果用以下
var x: Array[0..3] of Byte;
IdUDPClient1.SendBuffer(x, 4);
會有
There is no overloaded version of 'SendBuffer' that can be called with these arguments

如果要Boardcast message 'ABC' 要如何做?
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-07 15:03:31 IP:210.66.xxx.xxx 訂閱
在D7所附的Indy(嗯, 還真沒check過, 是啥版本..^_^?), 你的寫法是OK的,
[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
X: Array[0..3] of Byte;
begin

IdUDPClient1.SendBuffer(X, 4);

IdUDPClient1.SendBuffer(X, SizeOf(X));

end;
[/code]
所以你要去查看一下, TIdUDPClient.SendBuffer()函式的定義是不是改了,


^_^.

這是D7的...
procedure SendBuffer(var ABuffer; const AByteCount: integer); overload;

===================引 用 apple12 文 章===================
我用Indy 10

如果用以下
var x: Array[0..3] of Byte;
IdUDPClient1.SendBuffer(x, 4);
會有
There is no overloaded version of 'SendBuffer' that can be called with these arguments
---->意指使用參數型態不符.

如果要Boardcast message 'ABC' 要如何做?

IdUDPClient1.Send('ABC');
編輯記錄
jow 重新編輯於 2007-11-07 15:08:33, 註解 無‧
apple12
一般會員


發表:28
回覆:23
積分:10
註冊:2003-05-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-07 15:11:39 IP:202.64.xxx.xxx 訂閱

參數型態應已改為TByte
怎樣定義,如果想用UDP傳'ABC',應怎樣做?
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-11-07 16:14:08 IP:210.66.xxx.xxx 訂閱
因為手邊沒有Indy10, 所以上網爬文...

TIdBytes = TBytes

TBytes = array of Byte;

所以你的問題在於, 不同資料型別相互間的轉換....^_^

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
type
//NOTE: 自定資料型態(測試用)
TBytes = array of Byte;
TIdBytes = TBytes;
//NOTE: 自定資料型態(測試用)
var
S: string;
B: TIdBytes;
begin
S := 'ABC';
SetLength(B, Length(S));//動態配置記憶體
try
//將字串 S 的內容 move 到 B 中.
Move(PChar(S)^, Pointer(B)^, Length(B));

//以下請自行 coding..
IdUDPClient1.Send(B);
IdUDPClient1.SendBuffer(B, Length(B));

finally
B := nil;
end;
end;

[/code]

===================引 用 apple12 文 章===================

參數型態應已改為TByte<<---是TBytes
怎樣定義,如果想用UDP傳'ABC',應怎樣做?
系統時間:2024-03-29 3:20:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!