Sockets... Online stellen

Ach übrigens... Muss sich der Serverersteller dann eigentlich auch zusätzlich als Client verbinden?

Kommt immer drauf an, wie du programmierst.

Entweder ein Programm, das den Server stellt und sonst nichts; und ein Client-Programm; mit dem man spielen kann; dann ja.
Du könntest aber auch ein Spiel-Programm, das sich irgendwohin verbinden will; und einmal das gleiche Spiel, das nebenbei als Server arbeitet, machen.

Empfehle aber dringend die erste Variante.
 
@Sheel: Danke für die Aufklärung. Da nehme ich auf jeden Fall die erste!

Danke für die Tipps:
Also in der Firewall habe ich den Port freigeschaltet, Ip ist die richtige... Und im Router hab ich den Port 4711 auch freigeschaltet!
So langsam fange ich an zu verzweifeln...

Ich hoffe, dass es doch noch eine Lösung gibt,
Wolfy
 
1. Läuft dein Serverprogramm? :D
2. Funktioniert ein ping auf den anderen Rechner?
ansonsten weiß ich auch nicht weiter...
 
Ok... Hab einen Ping mit CMD und einer Java Application versucht!
Und es geht einfach nicht! Weder dass ich einen Computer erreiche, noch das mich einer erreicht!
Aber ich habe gerade den ServerSocket ausgegeben!
ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=4711]
Das kam mir irgendwie äußerst schräg vor...
Wolfy
 
Zuletzt bearbeitet:
Nein, Sorry... Ich merkte gerade, dass ich im vorigen Post einen ziemlichen Blödsinn geschrieben habe! (Also der 2. Satz)
Es geht in jedem Fall weder CMD noch in Java!

Und hier der ServerSocket-Code:
Ich muss sagen, dass ich ihn eher rauskopiert habe, und dann so umgeschrieben, dass er an jeden Clienten das Wort "Dumm" in Bytes verschickt...

Code:
import ...
 
public class ScreenProvider implements Runnable {
 
	int port;
	Set<Socket> clientSockets;
	ExecutorService executorService;
 
	public static void main(String[] args) {
		Executors.newSingleThreadExecutor().execute(new ScreenProvider(4711));
	}
	
	
	public ScreenProvider(int port) {
		JFrame F = new JFrame(); // IST NUR DAMIT ICH EINEN SICHTBAREN BEWEIS HABE
		F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// UND DASS ICH ES EINFACH BEENDEN KANN
		F.setVisible(true);
		this.port = port;
		this.clientSockets = new CopyOnWriteArraySet<Socket>();
		this.executorService = Executors.newCachedThreadPool();
		System.out.println("ServerSocket started");

	}
 
 
	public void run() {
		executorService.execute(createClientConnectionAcceptor());
 
		while (true) {
			if (!clientSockets.isEmpty()) { 		
				String str = "Dumm";
				for (Socket clientSocket : clientSockets) {
					try {
						clientSocket.getOutputStream().write(str.getBytes());
					} catch (IOException e) {e.printStackTrace();
					try {
							clientSocket.close();
							clientSockets.remove(clientSocket);
						} catch (IOException e1) {
							e1.printStackTrace();
						}
					}
				}
			}
			try {
				TimeUnit.MILLISECONDS.sleep(250);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
 
	private Runnable createClientConnectionAcceptor() {
		return new Runnable() {
 
			public void run() {
				try {
					ServerSocket serverSocket = new ServerSocket(port);
					System.out.println(serverSocket.getInetAddress());
					while (true) {
						clientSockets.add(serverSocket.accept());
						
					}
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
		};
	}

}

Vielleicht liegt des Rätels Lösung ja doch im Code...
Danke schonmal, Wolfy
 
Wenn in der CMD kein Ping geht, hast du zu dem angepingten Rechner keine Netzwerkverbindung.
Und zwar das ganze Betriebssystem, da kann dein Code überhaupt nichts dafür.

Wie ist denn die Verbindung zum Zweitrechner?
Beide per Kabel am gleichen Router?

Windowsversion?
Ausgaben von "ipconfig -all" in der CMD?
 
Der Zweitrechner steht einige Kilometer von mir eintfernt an einem völlig anderen Netz, denn mir ist aufgefallen, dass ja jeder Computer im localen Netz die gleiche IP hat, also dass nur der Router 1 IP hat und die Rechner dann halt die 192.168 IPs...

Ich habe Windows 7 (der Zweitrechner auch) und hier die CMD-Ausgabe:
Code:
C:\Users\User>ipconfig -all

Windows-IP-Konfiguration

   Hostname  . . . . . . . . . . . . : WOLFY-PC
   Primäres DNS-Suffix . . . . . . . :
   Knotentyp . . . . . . . . . . . . : Broadcast
   IP-Routing aktiviert  . . . . . . : Nein
   WINS-Proxy aktiviert  . . . . . . : Nein

Drahtlos-LAN-Adapter Drahtlosnetzwerkverbindung 2:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:
   Beschreibung. . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter
   Physikalische Adresse . . . . . . : 00-26-F2-B4-49-D8
   DHCP aktiviert. . . . . . . . . . : Ja
   Autokonfiguration aktiviert . . . : Ja

Drahtlos-LAN-Adapter Drahtlosnetzwerkverbindung:

   Verbindungsspezifisches DNS-Suffix:
   Beschreibung. . . . . . . . . . . : NETGEAR WG111v3 Wireless-G USB Adapter
   Physikalische Adresse . . . . . . : 00-26-F2-B4-49-D8
   DHCP aktiviert. . . . . . . . . . : Ja
   Autokonfiguration aktiviert . . . : Ja
   Verbindungslokale IPv6-Adresse  . : fe80::8c3a:dd3b:46ef:2eda%14(Bevorzugt)
   IPv4-Adresse  . . . . . . . . . . : 192.168.1.100(Bevorzugt)
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Lease erhalten. . . . . . . . . . : Freitag, 06. August 2010 14:14:47
   Lease läuft ab. . . . . . . . . . : Samstag, 07. August 2010 14:38:33
   Standardgateway . . . . . . . . . : 192.168.1.1
   DHCP-Server . . . . . . . . . . . : 192.168.1.1
   DHCPv6-IAID . . . . . . . . . . . : 335554290
   DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-13-CF-1F-70-90-E6-BA-CC-74-60
   DNS-Server  . . . . . . . . . . . : 192.168.1.1
   NetBIOS über TCP/IP . . . . . . . : Aktiviert

Ethernet-Adapter LAN-Verbindung:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: my-domain
   Beschreibung. . . . . . . . . . . : Atheros AR8121/AR8113/AR8114 PCI-E Ethernet Controller
   Physikalische Adresse . . . . . . : 90-E6-BA-CC-74-60
   DHCP aktiviert. . . . . . . . . . : Ja
   Autokonfiguration aktiviert . . . : Ja

Tunneladapter Teredo Tunneling Pseudo-Interface:

   Verbindungsspezifisches DNS-Suffix:
   Beschreibung. . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP aktiviert. . . . . . . . . . : Nein
   Autokonfiguration aktiviert . . . : Ja
   IPv6-Adresse. . . . . . . . . . . : 2001:0:5ef5:79fd:99:1c47:a307:98e2(Bevorzugt)
   Verbindungslokale IPv6-Adresse  . : fe80::99:1c47:a307:98e2%13(Bevorzugt)
   Standardgateway . . . . . . . . . : ::
   NetBIOS über TCP/IP . . . . . . . : Deaktiviert

Tunneladapter isatap.{C63D1C63-AF05-421D-920C-BE652E9FF421}:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:
   Beschreibung. . . . . . . . . . . : Microsoft-ISATAP-Adapter #2
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP aktiviert. . . . . . . . . . : Nein
   Autokonfiguration aktiviert . . . : Ja
 
Hi,

wenn die Rechner einige Kilometer auseinander stehen, dann besteht die Verbindung ja wahrscheinlich auch nicht über ein lokales Netzwerk sondern übers Internet oder? Dann kann es natürlich sein, dass der Router hinter dem dein Kollege hängt von sich aus schonmal garnicht erst auf Pings reagiert, dann wirst du auch keine Antwort auf deine Versuche erhalten.
Hast du denn dein Problem mittlerweile gelöst?

Gruß
Der Wolf
 
Zurück