CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - TcpClient - nie odbiera odpowiedzi :(

TcpClient - nie odbiera odpowiedzi :(

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

TcpClient - nie odbiera odpowiedzi :(

Nowy postprzez Corvis » wtorek, 3 kwietnia 2012, 14:48

Witam,

Napisałem sobie prosty program który wysyła mi dane na odpowiedni adres i PORT. Dane dochodzą do urządzania ( bo urządzenie to sygnalizuje). Urządzenie odsyła odpowiedź ale program już tego nie "łapie".

Tutaj prosty Kod

KOD cpp:     UKRYJ  
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) {
        TcpClient1->Sendln("0100\r\n","");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TcpClient1Receive(TObject *Sender, PChar Buf, int &DataLen) {
        Beep();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
        TcpClient1->LocalHost = "192.168.0.11";
        TcpClient1->LocalPort = 0;
        TcpClient1->RemoteHost = "192.168.0.10";
        TcpClient1->RemotePort = 35000;
        this->Caption = BoolToStr(TcpClient1->Connect() , true);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender){
        TcpClient1->Disconnect();
}
 


Nie znam się na aplikacjach sieciowych. Ale nie rozumiem czemu nie mogę odebrać odpowiedzi.

Z góry dzięki za pomoc.

Pozdrawiam,
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: TcpClient - nie odbiera odpowiedzi :(

Nowy postprzez Cyfrowy Baron » środa, 4 kwietnia 2012, 09:46

RemotePort oczekuje wartości typu AnsiString, a nie Integer. Czy ten numer portu nie jest za duży?
Nie wiem jak to jest z tym portem (RemotePort), ale chyba nie ma dowolności, gdyż w pomocy możemy przeczytać:

KOD text:     UKRYJ  
Many port numbers are associated by convention with a particular service such as ftp or http. To determine whether the value of RemotePort is associated with a specific service, use the LookupProtocol method.


Przecież komputer klienta odbierającego odpowiedź musi mieć ten port otwarty, czyli dodany do listy wyjątków w zaporze.

Server powinien mieć ten sam numer w LocalPort co klient w RemotePort, tak samo z LocalHost i RemoteHost.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: TcpClient - nie odbiera odpowiedzi :(

Nowy postprzez Corvis » niedziela, 22 kwietnia 2012, 22:56

Sorry, że tak długo, ale ostatnio mam mało czasu.

Problem rozwiązałem. Żeby metoda TcpClient1Receive została wywołana. Trzeba użyć funkcji odbierającej dane czyli którą z :

ReceiveBuf()
Receiveln()
ReceiveFrom()

No i w efekcie końcowym wyszło mi, że działa to podobnie jak port szeregowy. Pytam czekam i odbieram ;)
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 7 gości