請問將NMUDP改寫用Indy收的問題 |
尚未結案
|
edwardweng
一般會員 發表:29 回覆:5 積分:6 註冊:2003-04-16 發送簡訊給我 |
請問如何將下面NMUDP元件改寫程IdUDPClient, IdUDPServer的寫法 //下列我想把NMUDP接收改寫成IdUDPServer收
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
mdata:array[1..65535] of char;
data:Pchar;
begin
if NumberBytes <= 0 then Exit;
fillchar(mdata,65535,#0);
NMUDP1.ReadBuffer(mdata,NumberBytes);
data:=pchar(dword(@mdata));
ACMWaveOut1.Play(data,NumberBytes);
end; //以下想用IdUDPClient來發送…
procedure TForm1.ACMWaveIn1BufferFull(Sender: TObject; Data: Pointer;
Size: Integer);
var
r,l:integer;
mdata:array[1..65535] of char;
k:integer;
begin
if Size<=0 then exit;
for k:=1 to size do mdata[k]:=pchar(dword(data) k-1)^;
NMUDP1.SendBuffer(mdata,size);
end; 請求各位幫忙要如何改才正確。謝謝~~ 活到老,學到老
天天都有新鮮事 若有任何問題,歡迎寫信給我
e-mail: edward@coolboom.com.tw
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
我看範例是這樣寫的。
procedure TUDPMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var DataStringStream: TStringStream; begin DataStringStream := TStringStream.Create(''); try DataStringStream.CopyFrom(AData, AData.Size); UDPMemo.Lines.Add('Received "' DataStringStream.DataString '" from ' ABinding.PeerIP ' on port ' IntToStr(ABinding.PeerPort)); s := 'Replied from ' UDPServer.LocalName ' to "' DataStringStream.DataString '"'; finally DataStringStream.Free; end; end;發表人 - wameng 於 2004/12/03 14:54:05 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |