A
Aley
Gast
Hallo, ich habe ein paar kleine Probleme mit einem kleinen Messenger den ich versuchen zu schreiben. Hab noch nicht so viel Ahnung von dser Java-Programmierung und wollte bloß versuchen mal ein kleines Prog zu schreiben ^^
Also, Mein Programm basiert auf einem Server-Teil und einem Client-Teil, hab auch ein paar sachen hier aus dem Forum benutzt, hier erstmal der Quellcode
server.java
client.java
functions.java
Also meine Probleme:
1. Ich kann vom Client nur EINE nachricht senden und vom Server nur EINMAL antworten, wie kann ich es realisieren das ich mehrere Nachrichten schicken kann?
2. Wie kann ich es realisieren das ich in dem Programm im Client die IP des Servers eingeben kann, zur Zeit ändere ich die IP immer nur im quellcode, aber irgendwann soll ja auch jemand das prog benutzen der nicht programmieren kann.
Für alle Anregungen, Lösungen oder Internetseiten woch ich das anchlesen kann wär ich sehr dankbar, also vielen dank schon im voraus für eure hilfe.
lg alex
Also, Mein Programm basiert auf einem Server-Teil und einem Client-Teil, hab auch ein paar sachen hier aus dem Forum benutzt, hier erstmal der Quellcode
server.java
Code:
import java.io.*;
import java.net.*;
public class server {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// Server starten
ServerSocket server = new ServerSocket(1234);
// warten auf eine neue Verbindung
Socket s = server.accept();
// neue Verbindung ist da, wir lesen einfach aus,
// was sie uns so schickt und schicken dann alles in grossbuchstaben wieder zurück
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String text = in.readLine();
System.out.println("Text vom Client: "+text);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//EINE Texteingabe zurückschicken
System.out.println("Nachricht an den Client: ");
String temp = functions.getline();
out.write(temp);
out.newLine();
out.flush();
// aufräumen
out.close();
in.close();
server.close();
}
}
client.java
Code:
import java.io.*;
import java.net.*;
public class client {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
// socket auf localhost port 1234 konstruieren
Socket s = new Socket("192.168.15.37",1234);
// etwas über den socket versenden
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
System.out.println("Nachricht an den Server: ");
String temp = functions.getline();
out.write(temp);
// zeilenumbruch senden
out.newLine();
out.flush();
// BufferedReader konstruieren
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
// eine zeile lesen
String text = in.readLine();
// und ausgeben
System.out.print("Text vom Server: ");
System.out.println(text);
// am ende schliessen wir alle offenen Reader und Writer, der Socket wird dabei automatisch geschlossen
out.close();
in.close();
}
}
functions.java
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
public class functions {
/******Funktion um EINE Texteingabe von der Tastatur einzulesen**************************/
static String getline() throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
line = in.readLine();
in.close();
return line;
}
/****************************************************************************************/
}
Also meine Probleme:
1. Ich kann vom Client nur EINE nachricht senden und vom Server nur EINMAL antworten, wie kann ich es realisieren das ich mehrere Nachrichten schicken kann?
2. Wie kann ich es realisieren das ich in dem Programm im Client die IP des Servers eingeben kann, zur Zeit ändere ich die IP immer nur im quellcode, aber irgendwann soll ja auch jemand das prog benutzen der nicht programmieren kann.
Für alle Anregungen, Lösungen oder Internetseiten woch ich das anchlesen kann wär ich sehr dankbar, also vielen dank schon im voraus für eure hilfe.
lg alex