German Ausgehenden Port bei TCP-verbindungen angeben.

Kilipet

New Member
Hallo Leute!
Ich möchte gerne ein Programm schreiben mit dem ich eine TCP-Verbindung zu meiner Haus-Steuerung (SPS) aufbauen kann. Mit kleinen Telegrammen bin ich dann in der Lage per WLAN mit Handy sämtliche Lampen und Rolläden im Haus zu steuern. Meine Steuerung überprüft aber den Port auf beiden seiten der Verbindung wenn der PPC diese aktiv aufbaut.
In der Anderen Richtung (SPS verbindet zum PPC) funktioniert das Programm schon. Da aber bei der Einwahl des Handys per WLAN eventuell eine andere Ip vergeben wird ist dierser Weg sehr unpraktisch.

Für meine TCP-Verbindung müsste ich also beide Ports angeben. Den port auf dem die SPS lauscht (klar, den muss man angeben), aber auch den Port den der PPC lokal zum versenden verwendet. Der lokale port wird bei jeden verbindungsaufbau neu vergeben.

Vielleicht habt Ihr ja eine Idee.

MFG
KiliPet
 

mamuen

Member
Licensed User
Hi KiliPet,

wenn ich Dich richtig verstanden habe, läuft die Serveranwendung auf Deiner SPS und der Client wir von Dir als BasicPPC-Programm realisiert. Nun ist es im Allgemeinen aber so, dass der Client nur den Server-Port und die IP-Adresse wissen muss und für sich einen freien Port "auswürfelt", auf dem er die Antwort vom Server erwartet. So weit mir bekannt ist, gibt es keine Möglichkeit diesen Clientport zu ermitteln, was aber normal ist, weil er jedes mal neu (dynamisch) vom TCP/IP Stack vergeben wird. Mir ist bis jetzt auch noch nie eine Serveranwendung untergekommen, die einen festen Clientport erwartet. Normalerweise wird der TCP-Verbindungsaufbau (Dreiwegehandshake) durch den Clienten eingeleitet. Dieser muss deshalb die IP-Adresse und den Port auf dem der Server lauscht wissen. Im ersten TCP-Paket teilt der Client dem Server aber mit, auf welchem Port er die Antwort erwartet.

Ich hoffe, ich konnte Dir mit dieser zugegeben etwas technischen Erläuterung ein bischen weiterhelfen.

Gruss

Mamuen
 
Last edited:

Kilipet

New Member
Hi Manuen!
Die Verbindung zu einer SPS ist etwas spezieller. Die Steuerung erwartet einen festen Port auf beiden Seiten der Verbindung. Mit WinSock und Visual Basic 6 kann ich den ausghenden Port spezifizieren und bekomme eine Verbindung zur SPS zustande (Eigenschaft "LocalPort"). Ich muss im Steuerungsprogramm zwingend beide Ports angeben. Und wenn der Port nicht auf beiden Seiten nicht stimmt, kommt auch keine Verbindung zustande.

Ich habe das Programm für den PPC als Clientanwendung geschrieben und die SPS verbindet sich dann zum PPC. Offenbar bekomme ich von meinem Router per WLAN immer die selbe IP. Deshalb funktioniert es so. Ich muss aber nach Programmstart immer warten bis die verbindung steht.

Vielleicht hat ja doch jemand eine idee...

Kilipet
 

Bobbes

Active Member
Licensed User
Longtime User
Tach Leute,
leider kann ich euch nicht helfen. Ich habe ein ähnliches Problem, wie kann ich ein singal über USB auf meinen PPC bringen? Ich brauche nur 1 und 0 Signale.

Grüße Bobbes
 

mamuen

Member
Licensed User
Hi,

@Kilipet
>Ich habe das Programm für den PPC als Clientanwendung geschrieben und
>die SPS verbindet sich dann zum PPC. Offenbar bekomme ich von meinem
>Router per WLAN immer die selbe IP. Deshalb funktioniert es so. Ich muss
>aber nach Programmstart immer warten bis die verbindung steht.

Normalerweise verbindet sich der Client mit dem Server. Wo läuft nun die Client.- bzw. die Serveranwendung? Wenn der PPC als Client läuft, muesste er zu deiner SPS eine Verbindung aufbauen. Beschreibe doch die einzelnen Schritte des Verbindungsaufbau etwas genauer, dann kann ich Dir vielleicht helfen.

@ Bobes
>leider kann ich euch nicht helfen. Ich habe ein ähnliches Problem, wie kann
>ich ein singal über USB auf meinen PPC bringen? Ich brauche nur 1 und 0
>Signale.

Eine kleine Interface-Schaltung dürfte kein Problem sein, ich frage mich nur wie man die USB-Schnittstelle unter B4PPC anspricht?

Grüße Mamuen
 

Kilipet

New Member
Hallo Zusammen!
Ich habe jetzt eine Möglichkeit gefunden auf meiner Stuerung auch verbindungen mit dynamischen Ports und IPs vom PPC anzunehmen. Also alles Ugo!

Ich hab mich natürlich vertan mit Client und Server im meinem vorangegangenen beitrag. Der PPC war natürlich der Server und die Steuerung hat sich als Client darauf verbunden.
Jetzt läuft es aber anders herum und ich kann sämtliche Lampen, Dimmer und Rolläden im Haus per WLAN fernbedienen.

Inzwischen habe ich auch die Gegenrichtung programmiert um auf auf meinem Mobilgerät auch zu sehen welche Lampen im Haus an sind und auf wieviel prozent der Dimmer steht. Die Steuerung schickt dafür nach Verbindungsaufbau jede Sekunde ein Telegramm (20Byte) an das Programm.

Vielen Dank für eure Mühe.

KiliPet
 

Bobbes

Active Member
Licensed User
Longtime User
hi kilipet,
ich versuch es schon seit einem Jahr auf eine SPS oder auf den EIB zuzugreifen und ich kriege das nicht hin könntest du mir dies bezüglich einen Tip geben.

mfg
Bobbes
 
Top