Problem mit 2 Serversockets unter Win XP

SleepProgger

Mitglied
Hallo, ich bastele momentan an einem Server der auch passive Übertragung (ähnlich ftp) unterstützt.
Dabei bin ich auf folgendes Problem gestoßen:
Ich habe zwei ServerSockets die jeweils in einem eigenen Thread laufen.
Nun scheinen die accept()-Methoden der beiden sich gegenseitig zu blockieren.
Wenn ich mich 3 mal hintereinander zu dem ersten ServerSocket connecte, wird die Verbindung beim ersten mal angenommen, bzw. die Testdaten werden geschickt, die nächsten beiden male nicht.
Damit das ganze funktioniert muss ich mich immer abwechselnd zu beiden Sockets verbinden.

Unter Ubuntu funktioniert das ganze wunderbar.
Mein System: Win Xp Pro SP2
Ausserdem habe ich Antivir und die Ashampoo Firewall laufen, falls das vielleicht Probleme macht.

Weiß vielleicht jemand wie ich das ganze auf Windows zum laufen bringe?

Hier mal Testcode:
Java:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class ServerThread extends Thread {
	private ServerSocket serverSocket;
	public ServerThread(int port) {
		try {
			serverSocket = new ServerSocket(port);
			start();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	@Override
	public void run() {
		super.run();
		Socket tmpCientSocket;
		int connectionCount = 0;
		
		try {
			while (!interrupted()){
				System.out.println("Before Sock with port:"+serverSocket.getLocalPort()+" accept #"+connectionCount);
				tmpCientSocket = serverSocket.accept();
				tmpCientSocket.getOutputStream().write("hello".getBytes());
				System.out.println("After Sock with port:"+serverSocket.getLocalPort()+" accept #"+connectionCount);
				connectionCount++;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			//TODO close clientSocks
			try {
				serverSocket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) {
		new ServerThread(9966);
		new ServerThread(9977);
	}
}
 
T

tuxedo

Gast
Wenn mit Ubuntu fehlerfrei läuft, probiers doch einfach mal ohne Ashampoo Firewall... Frei nach dem "Ausschlussverfahren".

Ach ja: Manche Firewall muss man sogar deinstallieren damit sie wirklich deaktiviert sind.

- Alex
 
T

tuxedo

Gast
?? Stöpsel die DSL-Leitung raus und probierts mit deinstallierter Firewall im lokalen Netz. Wirst ja nicht ein dermaßen unsicheres LAN haben dass du nicht mal 10min ohne Firewall auskommst?!

- Alex
 

SleepProgger

Mitglied
Meinen Rechner neu zu starten ist so eine Sache ;)
Ich ziehe mir flugs vmWare und berichte dann.

edit: :lol: Zur Installation Für vmWare muss ich ja auch neu starten.
 
Zuletzt bearbeitet:

SleepProgger

Mitglied
So, ich habe es endlich geschafft ;), und schlussendlich in einer virtualBox getestet.
Testergebnisse:
ohne av und ohne firewall --> Ok
mit av und ohne firewall --> Ok
mit av und mit firewall --> Fehler
ohne av und mit firewall --> Fehler

Das Problem ist so wie es scheint wirklich die Firewall.
Ah.. ich sehe auch endlich den Sinn darin, falls die Firewall zwei Verbindungen aus einem Prozess zulassen würde könnte man ja problemlos seinen Server an eine exe hängen die Zugriffsrechte hat.
Die Frage aller Fragen ist nun: Wie umgehe ich das ganze ?


Dabei fällt mir auch gerade ein das ich dann scheins im falschen Forum bin, da dieses Verhalten dann Programmiersprachen unabhängig seien sollte. ;)

edit:
Vielleicht hat ja doch jemand hier eine Idee.
Die einzigen Möglichkeiten, außer die Firewall zu deinstallieren, die mir einfallen sind:
- Der CommandSocket erzeugt den DataSocket in einen neuen Prozess.
- Man verwendet nur einen Port und jeder Client gibt am Anfang an ob dies ein Data- oder ein CommandSocket ist.

Beide Varianten gefallen mir nicht wirklich, allerdings sehe ich bei der zweiten Variante bis auf den Programmieraufwand keinen Nachteil gegenüber der Lösung mit den zwei lauschenden Sockets.
 
Zuletzt bearbeitet:

SleepProgger

Mitglied
Es geht nicht um das "normale" Verhalten dieser Desktop-Firewall (Sprich Nachfragen ob die Verbindung erlaubt werden soll oder nicht.)
Ich nehme an das die Firewall mit Hooks arbeitet und dieses Verhalten so irgendwie (geplant oder ungeplant) ausgelöst wird.

Ich werde das ganze demnächst mal unter c probieren.
Wenn meine Vermutung zutrifft müsste ich das selbe Problem auch dort haben, wobei es unter Java ja auch mit UnterProzessen funktioniert ? ???:L
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Socket Problem mit den WebSocket Antworten der Discord API Netzwerkprogrammierung 0
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
C RMI Produzent-Verbraucher-Problem - Code review Netzwerkprogrammierung 12
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
S Problem bei dem Bluetoothverbindungsaufbau Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
M Netty - TCP Problem Netzwerkprogrammierung 4
L Socket Problem mit Server Netzwerkprogrammierung 1
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
M Problem bei Socket (MultiplayerSpiel) Netzwerkprogrammierung 4
M Socket CDI, Websocket reference Problem ! Netzwerkprogrammierung 2
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
G apache httpClient Problem. Netzwerkprogrammierung 5
H Problem mit ObjectStreams Netzwerkprogrammierung 3
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
D Socket BufferedWriter/Reader Problem Netzwerkprogrammierung 1
Maxim6394 Problem mit Socks5 Implementierung Netzwerkprogrammierung 0
C Handle Connection Problem Netzwerkprogrammierung 3
E HttpUrlConnection Cookie Problem Netzwerkprogrammierung 0
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
E einfaches Problem: Session-Handling bei Servlets Netzwerkprogrammierung 5
G Problem mit einem FileWatcher Netzwerkprogrammierung 7
T Socket Server starten Thread Problem Netzwerkprogrammierung 12
B Client/Server Connection Problem Netzwerkprogrammierung 2
G Problem mit STATIC-Verständnis Netzwerkprogrammierung 8
S Umstellung AS400 auf Postgre - Problem beim Arbeiten mit Metadaten Netzwerkprogrammierung 2
J Facelets Include Rendered Problem Netzwerkprogrammierung 2
J Socket Problem mit C++/Java Netzwerkprogrammierung 20
P Problem mit Datagram-Sockets Netzwerkprogrammierung 2
G Socket NIO2 Problem mit AsynchronousSocketChannel beim Schließen Netzwerkprogrammierung 3
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 7
B Socket Problem mit Netzwerkchat Netzwerkprogrammierung 21
D RMI Problem beim shutdown von verteilter CORBA-Anwendung Netzwerkprogrammierung 6
Maxim6394 ipv6 Problem Netzwerkprogrammierung 2
Maxim6394 Proxyserver Performance Problem Netzwerkprogrammierung 11
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 5
B RMI und Problem mit rmic-Tool Netzwerkprogrammierung 3
C FTP storeFileStream Problem Netzwerkprogrammierung 3
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
D JavaMail - Mailsabrufen Problem (imap) Netzwerkprogrammierung 12
J HTTP Übersetzung yahoo babelfish - Zeichensatz-Problem Netzwerkprogrammierung 6
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Problem beim Datenempfang Netzwerkprogrammierung 2
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
N NIO Problem beim speziellen Behandeln von einzelnen Benutzern Netzwerkprogrammierung 13
D Thread problem Netzwerkprogrammierung 3
T Servlets JSP: Tomcat Problem Netzwerkprogrammierung 4
K Client - Server Problem Netzwerkprogrammierung 16
T RMI Problem Client-Server Netzwerkprogrammierung 2
P RMI Stub Problem Netzwerkprogrammierung 3
D Socket UDP Übertragungs Problem Netzwerkprogrammierung 7
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 2
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 6
D Problem mit ObjectInputStreams Netzwerkprogrammierung 10
D Socket Problem mit InputStreamReader Netzwerkprogrammierung 3
N CRC32 CheckSum Problem bei UDP Netzwerkprogrammierung 2
V Java Mail Api - IMAP Problem Netzwerkprogrammierung 6
P RMI Problem Netzwerkprogrammierung 4
I Problem bei Outputstreamerzeugung in anderer Klasse als Socket Netzwerkprogrammierung 5
S Socket Problem mit Objektübertragung Netzwerkprogrammierung 16
Shoox Reader / Writer Problem Netzwerkprogrammierung 2
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
M RMI - Connection Problem Netzwerkprogrammierung 7
J Socket Client - Server Problem Netzwerkprogrammierung 4
M Socket Chat-Client-Problem Netzwerkprogrammierung 8
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
E HTTP Problem beim Auslesen von Websiten Netzwerkprogrammierung 6
T Problem bei Findung der richtigen Architektur Netzwerkprogrammierung 3
AlexSpritze Authentication Problem bei WebServices Netzwerkprogrammierung 4
J Socket Problem -Proxies Netzwerkprogrammierung 2
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
F Konzept Problem Netzwerkprogrammierung 12
G NIO Sockets Architektur Problem Netzwerkprogrammierung 2
H Neues NIO problem nachricht an alle clients Netzwerkprogrammierung 3
J Client server problem Netzwerkprogrammierung 3
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
W RMI Problem Netzwerkprogrammierung 4
M Problem mit Server Netzwerkprogrammierung 5
N Socket Java server c# client problem Netzwerkprogrammierung 7
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
R RMI Hibernate Problem Netzwerkprogrammierung 4
Z RMI Problem Netzwerkprogrammierung 11
F RMI problem mit RMI Netzwerkprogrammierung 3
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
H Log4j SocketAppender Problem Netzwerkprogrammierung 2
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
P Problem mit JOscarLib Netzwerkprogrammierung 6
0din SMTP Client - readline problem Netzwerkprogrammierung 4
C komisches Problem / ObjectInputStream erstellt sich nicht Netzwerkprogrammierung 5
W vista / win server 2003 netzlaufwerk problem Netzwerkprogrammierung 4
W Problem mit HTTP-Dateiübertragung Netzwerkprogrammierung 6
E Problem: netbeans 6.5 und webanwendung Netzwerkprogrammierung 6
C Problem mit Übertragung einer Klasse in RMI Netzwerkprogrammierung 10
B UDP Problem Netzwerkprogrammierung 25

Ähnliche Java Themen

Neue Themen


Oben