RMI hat langsame verbindung

Status
Nicht offen für weitere Antworten.

Tokka

Mitglied
Hallo zusammen!

Ich musste als Semesteraufgabe BlackJack Client/Server fähig programmieren (Eclipse mit Java 1.5).
Für die Kommunikation habe ich mich für RMI entschieden.

An meinem Server können sich bis zu 7 Clients anmelden. Das funktioniert auch alles wunder bar.
Aber es dauert doch immer recht lange, bis ein Client seinen "Zug" ausführen darf.
Ich habe das gefühl, das beim wechsel der Clients die verbindung abreist und immer wieder neu aufgebaut
werden muss.

Habt ihr da eine Idee wie ich dieses geschwindigkeits problem lösen kann??


Gruß
Tokka
 
G

Guest

Gast
Hallo, ich habe auch ein ähnliches Problem.
Ich habe zwei Clients und einen Server programiert. Die einzige Aufgabe der Server ist die von einem Client empfangenen Nachrichten über den anderen weiterzuleiten. Es dauert aber manchmal bis zu 5 Sekunden, bis ein Client eine Nachricht empfingt. Das ist meine erste Erfahrungen mit RMI, deshal weiß ich nicht genau ob das normal ist. Ist die Kommunikation über RMI so langsam ? Würde die Kommunikation etwas schneller geschehen, wenn man einen http server benutzt?
 
G

Guest

Gast
Wie werden die Clients verwaltet?
Passiert es immer, oder erst wenn z.B. ein Client beendet wurde?
 
G

Guest

Gast
Versucht auch folgendes (Angaben in Millisekunden)

-Dsun.rmi.transport.connectionTimeout=60000

auf beiden Seiten, also client- und serverseitig beim Start
 
G

Guest

Gast
Hallo,

Anonymous hat gesagt.:
Wie werden die Clients verwaltet?
Passiert es immer, oder erst wenn z.B. ein Client beendet wurde?

ich bin mir nicht sicher, ob du mich fragst oder Tokka. Wenn die Frage an mich war, hier ist meine Antwort.
Die clients benutzen eine einfache Callback-Methode. Sie registrieren sich erst beim Server. Der server hat nur 2 Referenzen zu diesen Remote-Objects. Nach der Registrierung senden die Clients periodisch Strings an Server und der Server leitet diese String weiter an den anderen Client.

Anonymous hat gesagt.:
Versucht auch folgendes (Angaben in Millisekunden)

-Dsun.rmi.transport.connectionTimeout=60000

auf beiden Seiten, also client- und serverseitig beim Start

das hat leider nichts geändert.
 
G

Guest

Gast
Hast du getestet, wo die meiste Zeit drauf geht?

Wenn du ein synchrones Callback hast, dann summiert sich die Zeit der Einzelaufrufe
auf dem Server. Wurde ein Client beendet (Server hat Referenz auf einen nicht mehr
existierenden Client), dauert es noch länger, bis serverseitig ein SocketTimeout kommt.
 
G

Guest

Gast
Der Server erzeugt einen Thread um den String weiter zu leiten. Die Kommunikation ist eher asynchron.
Ich denke, dass die Verzögerung wegen der Kontextwechsel der Threads entstehen könnte.
Aber auf jeden Fall 3 bis 4 Sekunden sind viel zu viel für 4 Threads, denke ich.
 
G

Guest

Gast
Anonymous hat gesagt.:
Der Server erzeugt einen Thread um den String weiter zu leiten. Die Kommunikation ist eher asynchron.
Jeder Client in einem Thread, nehme ich an. Das "eher asynchron" verwirrt etwas. ;)
Anonymous hat gesagt.:
Ich denke, dass die Verzögerung wegen der Kontextwechsel der Threads entstehen könnte.
Aber auf jeden Fall 3 bis 4 Sekunden sind viel zu viel für 4 Threads, denke ich.
Was auch immer es ist, an den Threads wird es vermutlich nicht liegen, wenn sie unabhängig
voneinander sind.
Versuche den Engpass mit einem Profiler zu lokalisieren. Man kann keine Aussagen über die
Performance einer Anwendung treffen, wenn man keine Messdaten hat. Aus der Ferne, ohne
den Code zu sehen, schon gar nicht.
 

Bleiglanz

Gesperrter Benutzer
zeig mal Code, die 4 Sekunden müssen woanders herkommen

hast du sowas wie eine Remote Methode der Form

sendMessage(String s, OtherClient other)
// Nachricht vom Client an den Server
//soll an other weitergeleitet werden

und in der serverseitigen implementierung schlägt der Server nach, wer other ist und ruft dessen Callbackmethode mit dem String auf?

die Clients müssen natürlich selbst "serverähnlich" d.h. multithreaded funktionieren, d.h. auf Ereignisse vom Server geeignet reagieren....
 

Tokka

Mitglied
Hier mal mein Code:

Interface vom Server:
Code:
public interface ServerInterface extends java.rmi.Remote {
    public void connect(ClientInterface client) throws java.rmi.RemoteException;;
    public void disconnect(ClientInterface client) throws java.rmi.RemoteException;
    public Card getCard(ClientInterface client) throws java.rmi.RemoteException;
    public void hold(ClientInterface client) throws java.rmi.RemoteException;
}

Server implementierung:

Code:
public class Server extends UnicastRemoteObject implements ServerInterface, Runnable {
	private DiscardTray	discardTray;
	private Gambler		dealer = new Gambler("Dealer");
	private volatile ClientInterface currentClient;

	private HashMap<ClientInterface, Gambler>localGambler = new HashMap<ClientInterface, Gambler>();

	private List<ClientInterface>	clientList= Collections	.synchronizedList(new ArrayList<ClientInterface>());

	protected Server() throws RemoteException {
		super();
	}

	public void startServer() {
		int port = 4711;

		if (System.getSecurityManager() == null)
                {
			System.setProperty("java.security.policy", "rmi.policy");
			System.setSecurityManager(new RMISecurityManager());
		}

		try{
			LocateRegistry.createRegistry(port);
			Naming.rebind("rmi://localhost:4711/Server", this);
			System.out.println("Server gestartet");

			new Thread(this).start();

		}catch (RemoteException e){
			e.printStackTrace();

		}catch (MalformedURLException e){
			e.printStackTrace();
		}
	}

	
	public void connect(ClientInterface client) throws RemoteException{
		this.clientList.add(client);
		this.localGambler.put(client, new Gambler(client.getName()));
		System.out.println("Client wird hinzugefügt");
	}

	public void disconnect(ClientInterface client) throws RemoteException{
		if (this.currentClient != null  && this.currentClient.equals(client))
		{
			this.currentClient = null;
		}
		this.clientList.remove(client);
		this.localGambler.remove(client);
		System.out.println("Client wird entfernt");
	}

	public Card getCard(ClientInterface client) throws RemoteException
	{
		if (!client.equals(this.currentClient))
		{
			throw new RemoteException("Spieler nicht am zug");
		}
		Gambler gambler = this.localGambler.get(client);
		Card card = this.discardTray.getCard();
		gambler.getHand().addCard(card);

		if (gambler.getHand().hasBusted())
		{
			gambler.setActive(false);
		}

		this.currentClient = null;
		return card;
	}

	public void hold(ClientInterface client) throws RemoteException
	{
		if (!client.equals(this.currentClient))
		{
			throw new RemoteException("Spieler nicht am zug");
		}
		Gambler gambler = this.localGambler.get(client);
		gambler.setActive(false);
		this.currentClient = null;
	}
}


Client interface
Code:
public interface ClientInterface extends Remote
{
	public String getName() throws RemoteException;
	public void onNewGame(Card dealerCard) throws RemoteException;
	public void onTurn() throws RemoteException;
	public void onDealerCard(Card dealerCard) throws RemoteException;
	public void onEndGame(String msg, Resources.GameState gs) throws RemoteException;
}


Client Implementierung
Code:
public class Client extends UnicastRemoteObject implements ClientInterface {

	protected Client(String name) throws RemoteException
	{
		super();
		this.gambler = new Gambler(name);
		// TODO Auto-generated constructor stub
	}

	Gambler gambler;
	Gambler dealer = new Gambler("dealer");
	ServerInterface server;
	
	public static void main(String args[])
	{
		Client client;
		try
		{
			int playerId = (int) Math.round(Math.random() * 10000);
			client = new Client("" + playerId);
			client.run();
		}
		catch (RemoteException e)
		{
			e.printStackTrace();
		}
		
	}
	
	public void run()
	{
	try
		{
			this.server = (ServerInterface) Naming.lookup("rmi://localhost:4711/Server");
		}
		catch (Exception e)
		{
			e.printStackTrace();
			return;
		}
		
		try
		{
			this.server.connect(this);
			System.out.println("Spielername: " + this.gambler.getName());
		}
		catch (RemoteException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public String getName() throws RemoteException
	{
		return this.gambler.getName();
	}

	public void onNewGame(Card dealerCard) throws RemoteException
	{
		this.gambler.dropCards();
		this.dealer.dropCards();
		this.dealer.getHand().addCard(dealerCard);
	
		System.out.println("Neues Spiel, Dealer hat: " + dealerCard);
	}

	public void onTurn() throws RemoteException
	{
		System.out.println("1 = Karte Ziehen");
		System.out.println("2 = Karten halten");
		
		int zahl = Integer.parseInt(getInput());
		
		switch (zahl)
		{
			case 1:
				Card card = this.server.getCard(this);
				this.gambler.getHand().addCard(card);	
				System.out.println(card);
				System.out.println("Spieler zieht " + this.gambler.getHand().getSumOfHand());
				break;

			case 2:
				this.server.hold(this);
				System.out.println("Spieler hat " + this.gambler.getHand().getSumOfHand()+ " Punkte");
			default:
				break;
		}
	}

	public void onDealerCard(Card dealerCard) throws RemoteException
	{
		this.dealer.getHand().addCard(dealerCard);
		System.out.println("Dealer hat: " + dealerCard);
		
	}

	public void onEndGame(String msg, GameState gs) throws RemoteException
	{
		System.out.println(msg + gs);
		
	}
	
	private String getInput()
	{
		BufferedReader din = new BufferedReader( new InputStreamReader(System.in));
		try
		{
			return din.readLine();
		}
		catch (IOException e)
		{
			return "";
		}
	}


}
 
G

Guest

Gast
Hallo,

sorry, es war mein Fehler. Ich hätte schon von anfang an meinen code posten sollen.

Bleiglanz hat gesagt.:
hast du sowas wie eine Remote Methode der Form

sendMessage(String s, OtherClient other)
// Nachricht vom Client an den Server
//soll an other weitergeleitet werden

da es mehrere Clients geben könnte, habe ich als argument eigene Referenz übergeben:
Code:
sendMessage(String str, ClientAdapter client)

Ich habe versucht den code soweit wie möglich vereinachen. Hier ist mein Code:

Interface vom Client:
Code:
public interface ClientAdapter extends Remote {
	public void processMessage(String str) throws RemoteException;
}

Client Implementierung:
Code:
public class ClientAdapterImpl 
				extends UnicastRemoteObject 
				implements ClientAdapter {
	
	private static final long serialVersionUID = -566357368009904972L;
	private int counter = 1;

	public ClientAdapterImpl() throws RemoteException {
		super();
	}

	public void processMessage(String str) throws RemoteException {
		System.out.println(counter + ". Message: " + str);
	}
}

Eine Thread-Klasse, die die Nachrichten sendet:
Code:
public class SenderThread extends Thread {
	private String str = null;
	private ClientAdapter client = null;
	public SenderThread(ClientAdapter client, String str){
		this.client = client;
		this.str = str;
	}
	
	public void run(){
		try {
			client.processMessage(str);
		} catch (RemoteException re) {
			re.printStackTrace();
		}
	}
}

Interface vom Server:
Code:
public interface ServerAdapter extends Remote {
	public void registerClient(ClientAdapter client) throws RemoteException;
	public void removeClient(ClientAdapter client) throws RemoteException;
	public void sendMessage(String str, ClientAdapter client) throws RemoteException;
}

Implementierung vom Server:
Code:
public class ServerAdapterImpl 
				extends UnicastRemoteObject
				implements ServerAdapter {
	private static final long serialVersionUID = 2840727540913742816L;
	private List<ClientAdapter> clientList = Collections.synchronizedList(new ArrayList<ClientAdapter>());

	public ServerAdapterImpl() throws RemoteException {
		super();
		
	}

	public void registerClient(ClientAdapter client) throws RemoteException {
		clientList.add(client);
	}

	public void removeClient(ClientAdapter client) throws RemoteException {
		clientList.remove(client);
	}

	public void sendMessage(String str, ClientAdapter client) throws RemoteException {
		 for(Iterator<ClientAdapter> iterator = clientList.iterator(); iterator.hasNext(); ) {
			 ClientAdapter destination = iterator.next();
			 if(destination != client)
				 new SenderThread(destination, str).start();
		      
		 } 
	}
}


Server Klasse, die die main methode enthält:
Code:
public class Server {
	public static void main(String[] args) {
		String host = "rmi://localhost";
		int port = 1099;
		if(args.length > 0)
			host = args[0];
		if(args.length > 1)
			port = Integer.parseInt(args[1]);
		
		String addr = host + ":" + Integer.toString(port) + "/MessageServer";

		if ( System.getSecurityManager() == null ) {
            System.setSecurityManager(new RMISecurityManager());
        }				   
        try {
        	LocateRegistry.createRegistry(port);
        } catch (RemoteException re) {
        }
        
        ServerAdapterImpl messageServer;
		try {
			messageServer = new ServerAdapterImpl();
			Naming.rebind(addr, (ServerAdapter) messageServer);
			
		} catch (RemoteException re) {
			re.printStackTrace();
		} catch (MalformedURLException murle) {
			murle.printStackTrace();
		}
	}
}

und die Client-main klasse, führe diesen code mehrmal um die Clients zu simulieren.
Code:
public class Client {
	public static void main(String[] args) {
		String host = "rmi://localhost";
		ClientAdapterImpl client = null;
		ServerAdapter server = null;
		int port = 1099;
		if(args.length > 0)
			host = args[0];
		if(args.length > 1)
			port = Integer.parseInt(args[1]);
		
		String addr = host + ":" + Integer.toString(port) + "/MessageServer";
		
		if ( System.getSecurityManager() == null ) {
            System.setSecurityManager(new RMISecurityManager());
        }				   
        try {
        	LocateRegistry.createRegistry(port);
        } catch (RemoteException re) {
        }
		
        try {
			client = new ClientAdapterImpl();
			server = (ServerAdapter) Naming.lookup(addr);
			server.registerClient(client);
		} catch (MalformedURLException murle) {
			murle.printStackTrace();
		} catch (RemoteException re) {
			re.printStackTrace();
		} catch (NotBoundException nbe) {
			nbe.printStackTrace();
		}
        
		BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
        String str= "";
        int option = 0;
        try {
			while(true){
				System.out.println("0   Exit");
				System.out.println("1   Send Message");
				System.out.println("option?:");
				str = in.readLine();
				option = Integer.parseInt(str);
				switch(option) {
					case 0: 
						server.removeClient(client);
						return;
					case 1:
						System.out.println("Enter the message to be sent: ");
						str = in.readLine();
						server.sendMessage(str, client);
						break;
					default:
						System.out.println("try again! ");
				}
			}
        }catch(Exception e){
			e.printStackTrace();
        }
}
}
 
G

Guest

Gast
@Gast
Dein Code schaut, bis auf paar Kleinigkeiten, OK aus. Ich kann keinen Grund für eine langsame Verbindung
erkennen.

Mach vielleicht den "counter" in ClientAdapterImpl und "clientList" in ServerAdapterImpl transient
und ändere den SenderThread so, dass nicht mehr existierende Clients aus der Liste der registierten Clients
entfernt werden.

Code:
public class SenderThread extends Thread {
   private String str = null;
   private ClientAdapter client = null;
   private ServerAdapterImpl server = null;
   
  public SenderThread(ServerAdapterImpl server, ClientAdapter client, String str){
      this.server = server;
      this.client = client;
      this.str = str;
   }

   public void run(){
      try {
        client.processMessage(str);
      }
      catch (ConnectException ce) {
        try {
          server.removeClient(client);  // Client entfernen, wenn nicht mehr erreichbar
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }
      catch (RemoteException re) {
        re.printStackTrace();
      }
   }
}
und in ServerAdapterImpl
Code:
private transient ArrayList<SenderThread> threadList = new ArrayList<SenderThread>(clientList.size());
...
   public void sendMessage(String str, ClientAdapter client) throws RemoteException {
      synchronized(threadList) {
         threadList.ensureCapacity(clientList.size());
         for(ClientAdapter adapter : clientList)
           threadList.add(new SenderThread(this, adapter, str));

         for(SenderThread thread : threadList)
           thread.start();
         threadList.clear();
      }
   }
Aufgeteilt in zwei Schleifen, damit die SenderThreads den Iterator nicht aus dem Schritt bringen,
wenn ein Client nicht mehr erreichbar ist (also wegen server.removeClient(...) bzw. clientList.remove(...)).

@Tokka
Bei dir ist auch das meiste nicht transient, obwohl es sein sollte. Dadurch geht immer deine halbe Anwendung
durch die Leitung. Du verwendest vorwiegend synchrone Kommunikation, so dass evtl. nicht mehr existierende
Clients das ganze ausbremsen.
 
G

Guest

Gast
:shock: ServerAdapter statt ServerAdapterImpl
Code:
public class SenderThread extends Thread {
   private String str = null;
   private ClientAdapter client = null;
   private ServerAdapter server = null;
   public SenderThread(ServerAdapter server, ClientAdapter client, String str){
...
 

Tokka

Mitglied
Habe das mal mit dem Transistent probiert, trotzdem bleibt mein geschwindigkeits problem!

Es scheint so, als wenn Client 2 die Verbindung von Client 1 löscht und seine eigene aufbaut. Es müssen sich also die Clients scheinbar immer neu connecten
 
G

Guest

Gast
Eine letzte Frage:
kann die Übertragung schneller geschehen, wenn ich die Messages statt in String als char-Array übertrage?
 

Tokka

Mitglied
es wird nichtmal schneller wenn ich nur ein Integer übergebe!

Ich habe das Gefühl das die Clients sich gegenseitig kicken
 
G

Guest

Gast
Ein Integer ist auch ein ganzes Objekt die serialisiert werden muss. Ich meint, ob sich irgendetwas ändern könnte wenn man als Argument nur primitiven typen benutzt
 

Tokka

Mitglied
ich denke das sich nix ändern wird.

Darüber hinaus sind die Interfaces so festgelegt worden :(

muss owhl mit der mangelnden Geschwindigkeit leben
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Socket Verdammt langsame übertragung bei tcp Netzwerkprogrammierung 3
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Verbindung zu Geräten mit gleicher IP aber in unterschiedlichen VLans aufbauen Netzwerkprogrammierung 2
M Socket Socket lehnt Verbindung ab Netzwerkprogrammierung 3
IAmFloppy Socket Nachstellen der Verbindung Netzwerkprogrammierung 6
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
S Bluetooth Verbindung zwischen Android app und Raspberry Pi 3 Netzwerkprogrammierung 1
S Peer2Peer Verbindung trotz NAT Netzwerkprogrammierung 2
T VPN-Verbindung über Java Netzwerkprogrammierung 4
Aruetiise Socket Verbindung Überprüfen Netzwerkprogrammierung 18
F Socket Verbindung mit Verschlüsselung und Authentifierzung Netzwerkprogrammierung 1
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
P Socket Socket-Verbindung Input sehr langsam Netzwerkprogrammierung 1
S FTP Verbindung zu einem BS2000 Großrechner mit Commons Net Netzwerkprogrammierung 0
F Einfache Socket Verbindung Netzwerkprogrammierung 2
F Verbindung zwischen Server und handy Netzwerkprogrammierung 1
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
I Swing hängt sich auf bei Verbindung zum Server Netzwerkprogrammierung 3
P RMI Hohe CPU Last RMI Verbindung Netzwerkprogrammierung 4
J Pc - Handy Verbindung? Netzwerkprogrammierung 3
M Socket 2x Proxy multithread-server mit Cross Verbindung Netzwerkprogrammierung 0
T Verbindung zum Server fehlgeschlagen Netzwerkprogrammierung 7
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
R Dauerhaft offene Socket-Verbindung? Netzwerkprogrammierung 3
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
S Socket Socket Verbindung wiederherstellen Netzwerkprogrammierung 16
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
N (TCP) Verbindung ohne Portforwarding Netzwerkprogrammierung 12
N Lan-Verbindung erstellen Netzwerkprogrammierung 2
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
E Verbindung zu SQL-Datenbank auf einem Server Netzwerkprogrammierung 13
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V NullPointerException bei Verbindung zu RabbitMQ-Server Netzwerkprogrammierung 4
B FTP commons net verschlüsselte verbindung Netzwerkprogrammierung 11
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
X Über eine Socket-Verbindung Arrays übergeben Netzwerkprogrammierung 5
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
A Socket Socket Verbindung unterbrochen --> keine Exception Netzwerkprogrammierung 7
S SVNKit - Verbindung zum Repository trennen? Netzwerkprogrammierung 2
P Socket neuer Client - neue(r) Socket/Verbindung geöffnet? Netzwerkprogrammierung 6
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
X SSH Verbindung zu Remote Datenbank Netzwerkprogrammierung 2
S TCP Verbindung zu Beamer Netzwerkprogrammierung 8
Y server client socket verbindung übers internet aufbauen Netzwerkprogrammierung 8
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
D Verbindung zw. zwei Rechnern funzt nicht Netzwerkprogrammierung 5
F Socket Socket Verbindung Netzwerkprogrammierung 10
E Server schließt einfach verbindung? Netzwerkprogrammierung 6
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
X Socket Handy/PC Verbindung unterscheiden Netzwerkprogrammierung 18
O Telnet verbindung Netzwerkprogrammierung 4
Dit_ UDP Verbindung durch Proxy Netzwerkprogrammierung 4
H Socket Client server,verbindung läst sich nicht abbauen&code optimierung Netzwerkprogrammierung 3
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
M HTTP HTTPS-Verbindung mittels Java und Javascript Netzwerkprogrammierung 2
N Verbindung zu Fritzbox Socket/Telnet ??? Netzwerkprogrammierung 5
multiholle RMI Verbindung Linux <-> Windows Netzwerkprogrammierung 4
S netzwerkprotokoll auf basis einer tcp verbindung erstellen Netzwerkprogrammierung 9
S SSH Verbindung mit j2ssh Netzwerkprogrammierung 3
H Socket Mit Applet Verbindung zu eigener Website aufbauen Netzwerkprogrammierung 4
H Socket Socket verbindung mit einem TeamSpeak2 Server Netzwerkprogrammierung 5
H TCP verbindung hinter NAT Netzwerkprogrammierung 28
G TCP SSL Verbindung Netzwerkprogrammierung 3
P Java / My-Sql Verbindung herstellen Netzwerkprogrammierung 6
W Socket Shellscript über ssh Verbindung aufrufen Netzwerkprogrammierung 14
N Socket Verbindung wird immer verweigert Netzwerkprogrammierung 5
Dit_ UDP-Verbindung, DatagramPakete Netzwerkprogrammierung 3
S Socket verbindung trennen Netzwerkprogrammierung 3
D Verbindung zu einem Server - POST Netzwerkprogrammierung 2
musiKk SSL-Verbindung mit Client-Zertifikat (Private Key) scheitert Netzwerkprogrammierung 13
D Socketprogrammierung Verbindung C++=>Java Netzwerkprogrammierung 23
B Probleme mit FTP verbindung Netzwerkprogrammierung 22
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
L Https Verbindung wird aus jar heraus nicht aufgebaut Netzwerkprogrammierung 12
M Verbindung über Proxy// Problem mit Outputstream bei URLConn Netzwerkprogrammierung 5
O TCP Socket-Verbindung überprüfen Netzwerkprogrammierung 4
F Peer to Peer Verbindung zwischen mehreren Clients? Netzwerkprogrammierung 8
F applet verbindung zum server Netzwerkprogrammierung 6
T Verbindung über das Internet Netzwerkprogrammierung 2
G Verbindung zwischen PC und Handy Netzwerkprogrammierung 10
B Bibliothek, um Eckdaten zur Internet-Verbindung rauszufinden Netzwerkprogrammierung 2
C Verbindung zwischen 2 Computern herstellen Netzwerkprogrammierung 12
G USB-Verbindung herstellen Netzwerkprogrammierung 3
O SSH-Verbindung (trilead-ssh2-build212) Netzwerkprogrammierung 2
K Verbindung mit Unix Server aufnehmen Netzwerkprogrammierung 2
J close() Socket Verbindung nötig ? Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben