ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
517
517
EMPFEHLEN
-
Hallo.
Ich möchte ein Programm schreiben, mit welchem man ein Kartenspiel (Binokel) übers Internet mit Freunden spielen kann.
Ich habe bereits Programmiererfahrung in Java, allerdings nicht mit Web-Technologien.
Wir hatten neulich in der Verteilten Systeme Vorlesung Client/Server Aufgaben in Java, und dies brachte mich dann auf die Idee, dieses Programm zu schreiben.
Zu meinem Problem:
Im moment habe ich folgendes:
Client:
public class Client {
Socket server;
DataInputStream input;
DataOutputStream output;
private String IpAdress;
public void SetIpAdress(String str){
this.IpAdress = str;
}
public Client() throws IOException {
}
public void send() throws IOException{
String inputString = null;
server = new Socket (IpAdress, 6112);
input = new DataInputStream (new BufferedInputStream (server.getInputStream()));
output = new DataOutputStream (new BufferedOutputStream (server.getOutputStream()));
inputString = MainClass.getInstanz().Read();
output.writeUTF(inputString);
MainClass.getInstanz().Clear();
output.flush();
server.close();
input.close();
output.close();
}
}
Die Ip des anderen wird durch ein User-Interface gesetzt. Als Port habe ich einfach mal den Wc3 Port genommen, weil ich weiss dass der frei ist.
Der Server:
public class Server extends Thread {
ServerSocket server;
DataInputStream input;
DataOutputStream output;
Socket client;
public Server() throws IOException {
while (true){
server = new ServerSocket(6112);
server.setReuseAddress(true);
client = server.accept();
input = new DataInputStream (new BufferedInputStream (client.getInputStream()));
output = new DataOutputStream (new BufferedOutputStream (client.getOutputStream()));
MainClass.getInstanz().Write(input.readUTF());
server.close();
input.close();
output.close();
}
}
}
Dann haben wir das beide gestartet, auf www.wieistmeineip.de unsere IP Adressen ausgelesen und jeweils die vom anderen eingegeben. Das komische ist, dass ich ihm einmal meine Nachrichten schicken konnte, und er bekam sie, n anderes mal ging es bei beiden nicht (es kam eine IOException).
Nun meine Fragen:
1. Ist mein ansatz mit den Sockets so richtig?
2. Würde das Ganze auch mit 3 Leuten gehen?
3. Muss man die Ports vllt. zuerst im Router freigeben?
4. Falls ja, geht das auch irgendwie anders (weil dass man erst nen Port freigeben muss is jetz net so toll)
4. Wenn ja, geht das auch anders?
-
Ich hab mir den Code nicht angeguckt (steck ihn bitte in [java] Tags), kann aber trotzdem etwas dazu sagen.
Ja. Du musst den entsprechenden Port im Router freigeben und an deinen PC weiterleiten.
Meines Wissens nach nicht! Das ist auch gut so. Das übliche Vorgehen wäre dann eine Server-Anwendung, zu welcher alle Clients connecten. Dann braucht lediglich der Server die Ports offen zu haben. Die Clients müssen auch alle nur die Serveradresse kennen.
-
Hi,
vielen vielen Dank für deine schnelle Antwort!
Alles klar, das dachte ich mir schon.
Dann erklärt sich ja auch, wieso mein Kumpel die Nachricht bekam, und ich seine nicht.
Ich hab mich halt gefragt obs bei Windows evtl. offene "default" Ports gibt, aber das ist auch egal.
Danke!
Ähnliche Themen
-
Client Server Script TCL Hilfe
Von sudoku2008 im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 03.01.08, 22:47 -
Client Server Programm
Von Tanja2000 im Forum JavaAntworten: 15Letzter Beitrag: 15.12.07, 12:25 -
Client Server Programm
Von Darkas im Forum .NET Web und KommunikationAntworten: 4Letzter Beitrag: 23.04.07, 21:54 -
Download Programm Client --> Server
Von thosch im Forum Microsoft WindowsAntworten: 1Letzter Beitrag: 10.01.07, 10:24 -
[VC++ 2005] Client - Server Programm
Von gl4di4t0r im Forum .NET Windows FormsAntworten: 4Letzter Beitrag: 08.11.06, 19:31





Zitieren


Login





