Forum: PC-Programmierung TCP-IP socket unter Windows 7


von DEV (Gast)


Lesenswert?

Hallo,

für den Austausch von Daten zwischen einem Windows Rechner und 
Mikrocontroller wird das Ethernet basierte Netzwerkprotokoll TCP-IP 
eingesetzt. Der Datenaustausch funktioniert soweit. Allerdings 
funktioniert die Verbindung nicht mehr, sobald auf dem Mikrocontroller 
>10Sekunden pausiert wird, dann scheint die Verbindung nicht mehr gültig 
zu sein. Gibt es eine Möglichkeit auf der Rechnerseite den Timeout zu 
erhöhen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was auch immer da schiefgeht, es liegt an Deinem Programm.

Socketverbindungen sind unter Windows langzeitstabil, d.h. können auch 
stunden- oder monatelange Inaktivität überstehen.

von DEV (Gast)


Lesenswert?

In der Zeit >10 Sekunden wird im Mikrocontroller eine Berechnung 
durchgeführt. Danach soll der Mikrocontroller ein TCP-IP Packet an den 
Rechner senden (Bestätigung)

von DEV (Gast)


Lesenswert?

Muss ich gegebenenfalls irgendwelche Windows Registry Einträge 
vornahmen?

von Peter II (Gast)


Lesenswert?

DEV schrieb:
> In der Zeit >10 Sekunden wird im Mikrocontroller eine Berechnung
> durchgeführt. Danach soll der Mikrocontroller ein TCP-IP Packet an den
> Rechner senden (Bestätigung)

der µC muss schon wenigstens die Bestätigung des Pakets verschicken. 
(also auf TCP ebene und nicht auf Anwendungsebene). Wenn du das mit 
deiner Berechnung verhinderst ist das nichg gut.

Eventuell kannst du das verhalten ja anpassen.

von Der Andere (Gast)


Lesenswert?

DEV schrieb:
> für den Austausch von Daten zwischen einem Windows Rechner und
> Mikrocontroller wird das Ethernet basierte Netzwerkprotokoll TCP-IP
> eingesetzt.

Zum Glück gibt es nur einen µC und genau eine Ethernet Hardware mit 
exakt einer TCP/IP Protokoll-Stack Implementierung.

DEV schrieb:
> Gibt es eine Möglichkeit auf der Rechnerseite

Auf welcher? Die Kommunikation verläuft zwischen zwei Rechnern.

Mal ein paar Ansätze zur Selbssthilfe:
1. Welche Fehlermeldungen bekommst du denn auf der PC Seite?
2. Eventuell zeigt ein TCP Logger dir mehr dazu an
3. Allgemein würde ich den Fehler eher auf der µC Seite suchen, die 
TCP/IP Stacks auf Windows sind doch recht stabil.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

DEV schrieb:
> Muss ich gegebenenfalls irgendwelche Windows Registry Einträge
> vornahmen?

Nein. Der Fehler liegt in Deinem Programm.

von Der Andere (Gast)


Lesenswert?

Peter II schrieb:
> der µC muss schon wenigstens die Bestätigung des Pakets verschicken.

Das sollte der TCP/IP Stack doch eigentlich selbstständig handeln.

von Peter II (Gast)


Lesenswert?

Der Andere schrieb:
> Das sollte der TCP/IP Stack doch eigentlich selbstständig handeln.

ja, aber auf einen µC kann man durch schlechte Programmierung leicht 
verhindern.

von Frickelfritze (Gast)


Lesenswert?

Der Andere schrieb:
> Zum Glück gibt es nur einen µC und genau eine Ethernet Hardware mit
> exakt einer TCP/IP Protokoll-Stack Implementierung.

Full Ack.

Da muss man wieder der Problemhaber die Popel einzeln aus
der Nase ziehen.

von Der Andere (Gast)


Lesenswert?

Noch was: Es gibt ja auch nur eine Programmiersprache.

von Peter II (Gast)


Lesenswert?

Der Andere schrieb:
> Noch was: Es gibt ja auch nur eine Programmiersprache.

was hier wiederum egal ist.

von DEV (Gast)


Lesenswert?

Die Verbindung bleibt weiterbestehen. Die Software auf der PC-Seite 
hatte noch einen Fehler.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

DEV schrieb:
> Die Software auf der PC-Seite hatte noch einen Fehler.

Ich hab's ja gesagt ...

von Der Andere (Gast)


Lesenswert?

Peter II schrieb:
> was hier wiederum egal ist.

Nicht unbedingt, denn davon hängt unter Umständen auch der verwendete 
Protokoll-Stack ab.

von Frickelfritze (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Ich hab's ja gesagt ...

... der TO kam nur daher um sich genüsslich die Popel aus der
Nase ziehen zu lassen und dabei entspannt die Probleme zu lösen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.