Forum: PC-Programmierung tcp socket connect


von Rainer S. (rsonline)


Lesenswert?

Der Befehl connect meldet erfolgreiche Verbindung, obwohl zum Server 
keine Verbindung besteht. Es werden auch Daten gesendet (wohin auch 
immer). Beim Empfang wird dann u.a. eine Länge von 0 empfangen (bedeutet 
Verbindungsabbruch).


Normalerweise funktioniert das.


Auf dem Rechner wo es nicht funktioniert ist ein VPN installiert.
Möglicherweise liegt es daran.
Der Befehl wget [ipserver] auf der Console funktioniert aber tadellos.


Welche Möglichkeiten gibt es den Netzwerkverkehr zu überprüfen.


Bring ein Ausdruck der Routentabelle (netstat -r) etwas?

von Rainer S. (rsonline)


Lesenswert?

Kernel IP routing table
Destination    Gateway        Genmask         Flags MSS Wind irtt Iface
10.254.0.1     10.254.30.121  255.255.255.255 UGH     0 0       0 tun4
10.254.30.121  *              255.255.255.255 UH      0 0       0 tun4
10.253.0.0     10.254.30.121  255.255.255.0   UG      0 0       0 tun4
192.168.0.0    *              255.255.255.0   U       0 0       0 eth0
10.254.0.0     10.254.30.121  255.255.0.0     UG      0 0       0 tun4
default        192.168.0.1    0.0.0.0         UG      0 0       0 eth0

von Matthias (Gast)


Lesenswert?

Das Universaltool heißt "Wireshark".

Mit dem dürfte so ziemlich jeder, der was mit Netzwerk debuggen will,
arbeiten.

von Rainer S. (rsonline)


Lesenswert?

Es ist nicht so einfach auf dem Rechner zusätzliche Software zu 
installieren. Das müsste möglichst mit Software an Board (Linux) 
untersucht werden.

von Peter II (Gast)


Lesenswert?

routing hilft nicht weiter.

Rufe mal "netstat -a -n" auf

von Rainer S. (rsonline)


Lesenswert?

Das geht erst wieder nach einem Programmupdate vielleicht im Laufe des 
Tages.

Geht auch 'netstat -a -n -t -p' ?
-t = nur TCP Verbindungen werden ausgegeben
-p = zeigt zusätzlich die Prozess ID an

von Rainer S. (rsonline)


Lesenswert?

...muss der Aufruf direkt nach dem connect Befehl sein?

von Peter II (Gast)


Lesenswert?

Rainer S. schrieb:
> muss der Aufruf direkt nach dem connect Befehl sein?

ja nach den connect, am besten innerhalb von ein paar sekunden. Also 
nicht "sofort"

von Rainer S. (rsonline)


Lesenswert?

Active Internet connections (servers and established)
Proto Recv Send Local Address      Foreign Address   State        PID
tcp      0    0 0.0.0.0:68         0.0.0.0:*         LISTEN
tcp      0    0 0.0.0.0:8080       0.0.0.0:*         LISTEN       31189
tcp      0    0 0.0.0.0:53         0.0.0.0:*         LISTEN
tcp      0    0 0.0.0.0:22         0.0.0.0:*         LISTEN
tcp      0    0 192.168.0.20:59601 89.110.156.185:80 ESTABLISHED  31189
tcp6     0    0 :::53              :::*              LISTEN
tcp6     0    0 :::22              :::*              LISTEN

Hiernach (3. Zeile von unten) ist alles in Ordnung

von Rainer S. (rsonline)


Lesenswert?

tcp   0   0 192.168.0.20:43134   89.110.156.185:80   TIME_WAIT
tcp   0   0 192.168.0.20:43135   89.110.156.185:80   ESTABLISHED 31189

von Rainer S. (rsonline)


Lesenswert?

Active Internet connections (servers and established)
Proto Recv Send Local Address       Foreign Address   State      PID/Prg
tcp      0    0 192.168.0.20:35935  109.91.95.104:80  ESTABLISHED 347/sh
tcp      0    0 192.168.0.20:35934  109.91.95.104:80  TIME_WAIT   -
tcp      0    0 10.254.30.122:8080  10.254.0.1:39235  ESTABLISHED 347/sh

Active Internet connections (servers and established)
Proto Recv Send Local Address       Foreign Address   State      PID/Prg
tcp      0    0 192.168.0.20:58937  89.110.156.185:80 ESTABLISHED 483/sh
tcp      0    0 10.254.30.122:8080  10.254.0.1:57445  ESTABLISHED 483/sh
tcp      0    0 10.254.30.122:8080  10.254.0.1:57444  TIME_WAIT   -

von Peter II (Gast)


Lesenswert?

dann steht doch die Verbindung, wo ist jetzt das Problem?

von Rainer S. (rsonline)


Lesenswert?

Nein, die steht eben nicht.

von Skalpell (Gast)


Lesenswert?

Weiß zwar nicht ob der kompletter Quatsch ist aber brauchst du nicht 
noch irgendwelche extra Header oder so?

von Peter II (Gast)


Lesenswert?

Rainer S. schrieb:
> Nein, die steht eben nicht.

laut den ausgaben steht sie. Kannst du auch mal von der gegenstelle den 
netstat aufrufen?

Wenn alles nicht hilft, musst das das netzwerk mitlesen. Aber selbst du 
wirst du zu 99% feststellen das die verbindung steht.

von Rainer S. (rsonline)


Lesenswert?

Die PID vom connect-programm (Linux shell sh) ändert sich laufend bei 
dem Computer. Hier könnte das Problem sein.

Bei den Computern wo es läuft ist das immer die PID vom eigentlichen 
Programm.

von Rainer S. (rsonline)


Lesenswert?

Peter II schrieb:
> Kannst du auch mal von der gegenstelle den
> netstat aufrufen?

Ich habe die Gegenstelle so programmiert, dass die IP aufgezeichnet 
wird, sobald ein connect stattfindet.

von Matthias (Gast)


Lesenswert?

Was noch möglich wäre:

ping den Server mal und lass Dir danach mal die ARP-Tabelle ausgeben
("arp -a").
Schau mal nach, was für eine MAC-Adresse bei der IP des "Servers" steht
und vergleich die, mit der MAC-Adresse vom Server. Evtl. gibt es die IP
doppelt im Netzerk (?).

Warum ist eine Installation von wireshark nicht möglich?
Ist das keine Standard Distribution, oder schon zu "alt", dass es kein
Repository mehr gibt?
Oder stellt sich der Admin quer?

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.