正確IP 卻10049 |
答題得分者是:GrandRURU
|
boy330077
一般會員 發表:39 回覆:59 積分:19 註冊:2009-10-15 發送簡訊給我 |
我用DOS ping 某個IP 已經有連線 但是我的UDP老是說10049 沒有成功過 procedure TForm1.FormCreate(Sender: TObject); begin IdUDPClient1.Port:=2047; IdUDPServer1.DefaultPort:=2047; end; procedure TForm1.Button2Click(Sender: TObject); begin IdUDPServer1.Active := false; IdUDPServer1.Binding.IP := Edit1.Text; IdUDPServer1.Binding.Port := 2047; IdUDPServer1.Binding.SetPeer(edit1.Text,2047); IdUDPClient1.Host:=Edit1.Text; IdUDPClient1.Active := true; IdUDPServer1.Active := true; caption := '已連線 '; button2.Enabled := false; button1.Enabled := true; end; procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var s : string; begin setlength(s,AData.size); AData.Read(s[1],AData.Size); Tuser :=1; zxc; RichEdit1.Lines.Add(s); Memo1.Lines.Add(s); end; procedure TForm1.Button1Click(Sender: TObject); begin Tuser := 0; zxc; RichEdit1.Lines.Add(Memo3.Lines[0]); IdUDPClient1.Send(Memo3.Lines[0]); Memo3.Clear; end; procedure TForm1.zxc; begin if Tuser = 0 then begin RichEdit1.SelAttributes.Color := clred; end else begin RichEdit1.SelAttributes.Color := clblack; end; end; 編輯記錄
boy330077 重新編輯於 2009-11-18 02:58:31, 註解 無‧
boy330077 重新編輯於 2009-11-18 02:59:03, 註解 無‧ boy330077 重新編輯於 2009-11-18 02:59:44, 註解 無‧ boy330077 重新編輯於 2009-11-18 03:00:26, 註解 無‧ boy330077 重新編輯於 2009-11-18 03:01:21, 註解 無‧ boy330077 重新編輯於 2009-11-18 03:02:00, 註解 無‧ boy330077 重新編輯於 2009-11-18 03:05:25, 註解 無‧ boy330077 重新編輯於 2009-11-18 03:07:16, 註解 無‧ |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
Client和Server的開啟順序是不是顛倒了呢?
建議可以先把問題給簡單化一點。 我剛剛開了一個新的小專案 1.先開了一個udp server 2.udp client 連線到udp server 3.udp client送字串給udp server 沒有發生錯誤訊息,自己傳給自己也是ok的 我的環境是: BCB6 Indy 8 另外,Ping是ICMP封包,和UDP封包是不一樣的。 [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { IdUDPServer1->Bindings->Add(); IdUDPServer1->Bindings->Items[0]->IP = "192.168.0.128"; IdUDPServer1->Bindings->Items[0]->Port = 2047; IdUDPServer1->Active = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::IdUDPServer1UDPRead(TObject *Sender, TStream *AData, TIdSocketHandle *ABinding) { AnsiString s; s.SetLength(AData->Size); AData->Read(s.c_str(), AData->Size); this->Caption = s; // 顯示結果 } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { IdUDPClient1->Active = true; //記得Client要先設定好Server IP位置 IdUDPClient1->Send("HI"); } //--------------------------------------------------------------------------- [/code] ===================引 用 boy330077 文 章=================== 我用DOS ping 某個IP 已經有連線 但是我的UDP老是說10049 沒有成功過 procedure TForm1.FormCreate(Sender: TObject); begin IdUDPClient1.Port:=2047; IdUDPServer1.DefaultPort:=2047; end; procedure TForm1.Button2Click(Sender: TObject); begin IdUDPServer1.Active := false; IdUDPServer1.Binding.IP := Edit1.Text; IdUDPServer1.Binding.Port := 2047; IdUDPServer1.Binding.SetPeer(edit1.Text,2047); IdUDPClient1.Host:=Edit1.Text; IdUDPClient1.Active := true; IdUDPServer1.Active := true; caption := '已連線 '; button2.Enabled := false; button1.Enabled := true; end; procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var s : string; begin setlength(s,AData.size); AData.Read(s[1],AData.Size); Tuser :=1; zxc; RichEdit1.Lines.Add(s); Memo1.Lines.Add(s); end; procedure TForm1.Button1Click(Sender: TObject); begin Tuser := 0; zxc; RichEdit1.Lines.Add(Memo3.Lines[0]); IdUDPClient1.Send(Memo3.Lines[0]); Memo3.Clear; end; procedure TForm1.zxc; begin if Tuser = 0 then begin RichEdit1.SelAttributes.Color := clred; end else begin RichEdit1.SelAttributes.Color := clblack; end; end; |
boy330077
一般會員 發表:39 回覆:59 積分:19 註冊:2009-10-15 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
找到你的問題了
以你的程式來看,單機上測是沒有問題的 但拿到你室友那邊的時候,你應該把server建立的程式段拿掉,只放client的程式段內容就好,這樣連線就不會有問題了 你的10049應該是在建立UDP Server時產生的error,因為你室友的ip不是你電腦的ip位置,在建立時自然就會有錯誤了。 ===================引 用 boy330077 文 章=================== 我測試本機都OK阿 可是要跟我室友連線 他就一直顯示 ERROR 10049 網路上說 代號是位址錯誤 不知道錯再哪,ip因該不會看錯才對
編輯記錄
GrandRURU 重新編輯於 2009-11-19 10:16:04, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |