請問UDP元件之Local Port設定 |
尚未結案
|
wct
一般會員 發表:5 回覆:17 積分:4 註冊:2002-06-07 發送簡訊給我 |
請問各位先進: 我用Delphi 7 於Win2000上使用UdpSocket收送資料,遠端主機(192.168.1.22:502)可以收到
本機(192.168.1.21)所送之資料,並回傳,但本機(port 5001)卻收不到,我用Protocal Analyzer
抓到遠端主機(192.168.1.22:502)所回的port並非port 5001,且每次Close 再 open後port number
會不一樣,且遞增1,很顯然地,本機所送出之port number並非我預設之5001; 請問是哪一個地方有問題?? 程式碼如下: unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Sockets; type
TForm1 = class(TForm)
UdpSocket1: TUdpSocket;
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure UdpSocket1Connect(Sender: TObject);
procedure UdpSocket1Receive(Sender: TObject; Buf: PAnsiChar;
var DataLen: Integer);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
begin
UdpSocket1.RemoteHost:='192.168.1.21';
UdpSocket1.LocalHost:='192.168.1.22';
UdpSocket1.LocalPort:='5001'; //設定本機Port number
UdpSocket1.RemotePort:='502'; //設定遠端主機Port number
UdpSocket1.Open; end; procedure TForm1.UdpSocket1Connect(Sender: TObject);
var
s:string; begin
//UdpSocket1.LocalPort:='5001';
s:=char(00) char(00) char(00) char(00) char(00) char(06) char(00) char(02) char(00) char(00) char(00) char(04);
UdpSocket1.Sendln(s,''); end; procedure TForm1.UdpSocket1Receive(Sender: TObject; Buf: PAnsiChar; var DataLen: Integer);//此部份未觸發 var
ss:string; begin
ss:=UdpSocket1.Receiveln;
edit1.text:=IntToStr(Length(ss));
memo2.Lines.Add(ss);
end; procedure TForm1.Button2Click(Sender: TObject);
begin
UdpSocket1.Close;
end; end. 謝謝!
wct
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
wct
一般會員 發表:5 回覆:17 積分:4 註冊:2002-06-07 發送簡訊給我 |
感謝wnhoo的回應: 1.遠程主机確實有有响应(因為我從Analyzer上監測到遠程主机192.168.1.21, Port 502 每次都有回應
給我192.168.1.22, port:每次不一樣, 但封包內容均是正確的),因此,我確定遠程主机做了他該做的事情,問題好像是
我的電腦之UDP Port並不受到UdpSocket1.LocalPort:='5001';之控制,而自己產生一個port number
給此socket;
2.我要用甚麼方式才能正確地收到192.168.1.21, Port 502回應給我的資料; 不勝感激!
wct
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
wct
一般會員 發表:5 回覆:17 積分:4 註冊:2002-06-07 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
wct
一般會員 發表:5 回覆:17 積分:4 註冊:2002-06-07 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |