ServerSocket schließen / öffnen im Programmverlauf

Status
Nicht offen für weitere Antworten.

joschika77

Bekanntes Mitglied
Hallo Leute.

Wie kann ich einen ServerSocket server im Programm schließen und wieder öffnen?
Eigentlich wirds mit server.close geschlossen. Das geht ja auch.
Dann verändere ich den Port und mit Start weitermachen. Danach geht leider nix mehr.
Hat jemand eine Ahnung oder Beispielcode?

MfG Ronn
 

Illuvatar

Top Contributor
Was meinst du mit start?

Eigentlich müsste es so gehen:
Code:
serverSocket.close();
serverSocket.bind (new InetSocketAddress (inetAddress, portNumber));
 

joschika77

Bekanntes Mitglied
Hallo!

Habe jetzt mal die gesamte Klasse reingesetzt.
Vielleicht kann mir jemand helfen den Fehler zu finden.
Ich habe ein Server Prog und ein Client Prog.
Es geht eigentlich darum, dass ich einen Server starte und im Programmverlauf wieder schließe und dann einen
neuen Port nehme. Dabei hängt er sich leider auf.

Code:
import org.amdesign.beans.systrayicon.SysTrayIcon;
import org.amdesign.beans.systrayicon.SysTrayIconException;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;

public class ChatServer extends JFrame implements MouseListener, WindowListener, ActionListener
{
	//Instanz von AudioKlasse
	Audio au = new Audio();
	
	ChatServerPanel csp;
	public static LogoPanel logo;
	private static int counter = 0;
	
	private ServerSocket server;
	static Vector vecClient = new Vector();
	boolean stopchat = true;
	
	//SysTray -------------------------------------------------------------------------------
	SysTrayIcon sysTray = new SysTrayIcon(); // Instanziert die Methode für den SystemTray unter Windows 
	String sysTrayIcon = "org/amdesign/beans/systrayicon/resources/images/default.ico";
	String sysTrayIcon2 = "org/amdesign/beans/systrayicon/resources/images/tray.ico";
	String sysTrayToolTip = " Chat - Server 1.0 - von Ronny Ewert ";
	boolean minArg = false;
	//----------------------------------------------------------------------------------------
	
	JButton start,stop;
	JTextField jt;
	int portnr = 5555;
	String portadresse = "5555";
	ClientConnect clientc;
	
	public ChatServer() throws Exception
	{	
	   fensterkomponenten();
		
	   au.clip3.play();
	  
		server = new ServerSocket(portnr);
		runChat();
	}
	
	private void fensterkomponenten()
	{
		setSize(350,330);
		setVisible(true);
		setResizable(false);
		setLocation(100,160);
		setTitle("Chat-Server - Clients: "+counter);
		
		//		schließt Fester noch nicht, wartet auf WindowListener
		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
			
		this.getContentPane().setLayout(null);
		
		setzeIcon();//rechts für die Kaffeetasse
				
		logo = new LogoPanel();
		//logo.setBounds(0,0,350,320);
		logo.setPreferredSize(new Dimension(350,320));
		logo.addMouseListener(this);
		logo.setToolTipText("Klick - Chat anzeigen");
		logo.setSize(350,320);
		
		//Instanz Panel
		csp = new ChatServerPanel(portadresse);
		//csp.setBounds(0,0,350,320);
		csp.setPreferredSize(new Dimension(350,320));
		csp.setVisible(false);
		csp.addMouseListener(this);
		csp.setToolTipText("Doppelklick -Chat verstecken ");
		csp.setSize(350,320);
		csp.reset();
		
		//----Start Stop Buttons---------------------------------
		start = new JButton("Start");
		start.setBounds(10,30,70,20);
		start.setSize(70,20);
		start.addActionListener(this);
		start.setEnabled(false);
		
		stop = new JButton("Stop");
		stop.setBounds(10,60,70,20);
		stop.setSize(70,20);
		stop.addActionListener(this);
		
		jt = new JTextField("5555");
		jt.setBounds(10,90,70,20);
		jt.setSize(70,20);
		jt.setEnabled(false);
		//-------------------------------------------------
		
		//SystemTrayMethode
		mytray();

		addWindowListener(this);
		this.getContentPane().add(jt);
		this.getContentPane().add(start);
		this.getContentPane().add(stop);
		this.getContentPane().add(logo);
		this.getContentPane().add(csp);
	
		//Swing dadurch gleich sichtbar-ähnlich repaint()
		validate();
		
	}
	
//innere Klasse-----------------------------------------------------------------------------
	class ClientConnect extends Thread
	{
		String name;
		BufferedReader reader;
		BufferedWriter writer;
		
		public ClientConnect(Socket client) throws IOException
		{
			counter++;
			setTitle("Chat-Server - Clients: "+counter);
			
			//Verbundene Clients im Tray aktualisieren-------------------------
			try 
			{ 
				sysTrayToolTip = " Verbunde Clients: "+counter;
				sysTray.setIcon(sysTrayIcon2, sysTrayToolTip); 
				sysTray.replaceIcon(sysTrayIcon2);
			} 
			catch(SysTrayIconException exc)  // Fängt Fehler ab 
			{System.out.println(exc.getMessage());} 
			//-----------------------------------------------------------------
			
			try
			{
				reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
				writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
				name = reader.readLine();
			}
			catch(IOException erw){}

			String zeilelogin = "Nachricht: "+ name +" hat sich eingeloggt!" + '\n';
			String zeilelogin2 = "Nachricht: "+ name +" hat sich eingeloggt!";//ohne Zeilenumbruch
			login(zeilelogin2);//Funktionsaufruf zum Login
			ChatServerPanel.taAusgabe.append(zeilelogin);//Meldung an den Server
			au.clip.play();
			setzeIcon();//Icon neu setzen
			csp.reset();//Balken rückt nach
		}
		
		public void run()
		{
			String zeile;
			try
			{
				while((zeile = reader.readLine()) != null)
				{
					ChatServerPanel.taAusgabe.append(zeile + '\n');
					doSende(zeile);
					csp.reset();
				}
			}
			catch(IOException iof)
			{
				System.out.println(iof);
			}
			
			String zeilelogout = "Nachricht: "+ name +" hat sich ausgeloggt!" + '\n';
			String zeilelogout2 = "Nachricht: "+ name +" hat sich ausgeloggt!";//ohne Zeilenumbruch
			logout(zeilelogout2);//Funktionsaufruf zum Logout
			ChatServerPanel.taAusgabe.append(zeilelogout);//Meldung an Server
			counter--;
			setTitle("Chat-Server - Clients: "+counter);
			au.clip2.play();
			setzeIcon();//Icon neu setzen
			csp.reset();//Balken rückt nach
			
			//Verbundene Clients im Tray aktualisieren-------------------------
			try 
			{ 
				if(counter > 0)
				{
					sysTrayToolTip = " Verbunde Clients: "+counter;
					sysTray.setIcon(sysTrayIcon2, sysTrayToolTip); 
					sysTray.replaceIcon(sysTrayIcon2);
				}
				else
				{
					sysTrayToolTip = " Es sind keine Clients verbunden ";
					sysTray.setIcon(sysTrayIcon, sysTrayToolTip); 
					sysTray.replaceIcon(sysTrayIcon);
				}
			} 
			catch(SysTrayIconException exc)  // Fängt Fehler ab 
			{System.out.println(exc.getMessage());} 
			//-----------------------------------------------------------------
		
			try
			{
				reader.close();
				writer.close();
				writer.flush();		
			}
			catch(Exception fe)
			{
				System.out.println(fe);
			}
		}
	
		public void doSende(String text)
		{
			for(int i=0 ; i < vecClient.size() ; i++)
			{
				ClientConnect cc =((ClientConnect)vecClient.elementAt(i));
				
				try
				{
				cc.writer.write(text);
				cc.writer.newLine();
				cc.writer.flush();
				}
				catch(IOException fehler)
				{
					System.out.println(fehler);
				}
			}
		}
//---Login + Logout------------------------------------------------------------------		
		public void logout(String text)
		{
			for(int i=0 ; i < vecClient.size() ; i++)
			{
				ClientConnect cc =((ClientConnect)vecClient.elementAt(i));
				
				try
				{
				cc.writer.write(text);
				cc.writer.newLine();
				cc.writer.flush();
				}
				catch(IOException fehler)
				{
					System.out.println(fehler);
				}
			}
		}	
		
		public void login(String text)
		{
			for(int i=0 ; i < vecClient.size() ; i++)
			{
				ClientConnect cc =((ClientConnect)vecClient.elementAt(i));
				
				try
				{
				cc.writer.write(text);
				cc.writer.newLine();
				cc.writer.flush();
				}
				catch(IOException fehler)
				{
					System.out.println(fehler);
				}
			}
		}
		
		public void closeRW()
		{
			try
			{
				reader.close();
				writer.close();
			}
			catch(IOException fehler)
			{
				System.out.println(fehler);
			}
		}
//----Ende Login + Logout------------------------------------------------------------	

	}//Ende innere Klasse--------------------------------------------------------------------
	
	public void runChat() throws IOException
	{
			while(true)
			{
				if(stopchat == false)
				{
					System.out.println("Hallo"); 
					break;
				}
				System.out.println( stopchat ); 
				clientc = new ClientConnect(server.accept());
				vecClient.addElement(clientc);
				clientc.start();
			}
			System.out.println("Hallo2");
	}
	
	public static void main(String[] args) 
	{
		ChatServer chatS;
		
		try 
		{
			chatS = new ChatServer();
			chatS.setVisible(true);
		} 
		catch(Exception e)
		{e.printStackTrace();}
	}

//	---Mouse Listener----------------------------------------------------------------------------
	  public void mouseClicked(MouseEvent arg0) 
	  {}
	  public void mouseEntered(MouseEvent arg0) 
	  {}
	  public void mouseExited(MouseEvent arg0) 
	  {}
	  public void mousePressed(MouseEvent arg0) 
	  {
		if(arg0.getClickCount()== 1)
		{
			csp.setVisible(true);
			logo.setVisible(false);
			start.setVisible(false);
			stop.setVisible(false);
			jt.setVisible(false);
		}
		if(arg0.getClickCount()== 2)
		{
			csp.setVisible(false);
			logo.setVisible(true);
			start.setVisible(true);
			stop.setVisible(true);
			jt.setVisible(true);
		}	
	  }
	  public void mouseReleased(MouseEvent arg0) 
	  {}
//	----------------------------------------------------------------------------------------------
//Window Listener---------------------------------------------
	public void windowOpened(WindowEvent arg0) {}
	public void windowClosing(WindowEvent arg0)
	{
		if(counter > 0)
		{
			int status = JOptionPane.showConfirmDialog(this,"Es ist/sind noch "+counter+" Client(s) verbunden! \n\nDienst beenden?","Frage ???",JOptionPane.YES_NO_OPTION);
			if(status == 0)
			{
				try
				{
					server.close();
					
					dispose();
					sysTray.freeMemoryExit();
					System.exit(0);
				}
				catch(IOException fehler) 
				{
					System.out.println(fehler);
				}	
			}
		}
		else
		{
			try
			{
				server.close();
				sysTray.freeMemoryExit();
				dispose();
				System.exit(0);
			}
			catch(IOException fehler){} 
		}
	}
	public void windowClosed(WindowEvent arg0) {}
	public void windowIconified(WindowEvent arg0) {}
	public void windowDeiconified(WindowEvent arg0) {}
	public void windowActivated(WindowEvent arg0) {}
	public void windowDeactivated(WindowEvent arg0) {}
//------------------------------------------------------------	

  //eigenes Icon setzen am linken Fensterrand
  private void setzeIcon()
  {
	MediaTracker mt = new MediaTracker(this);
		
	  if(counter == 0)
	  {
		Image icon = getToolkit().getImage(getClass().getResource("Bilder/links.gif"));
		mt.addImage(icon,0);
		setIconImage(icon);
	  }
	  else
	  {
		Image icon2 = getToolkit().getImage(getClass().getResource("Bilder/links2.gif"));
		mt.addImage(icon2,0);
		setIconImage(icon2);
	  }
	  
	try
	{
		//wartet bis Bild vollständig geladen
		mt.waitForAll();
	}
	catch(InterruptedException e){}
  }


	public void actionPerformed(ActionEvent e) 
	{
		if(e.getActionCommand().equalsIgnoreCase("Start"))
		{
			//Port ändern---------------------------------------
			if(!jt.getText().equalsIgnoreCase("5555"))
			{
				portnr = Integer.parseInt(jt.getText());
				portadresse = jt.getText();
				ChatServerPanel.lPortadresse.setText("Portadresse : " +portadresse);
				
				try 
				{ 
					server = new ServerSocket(portnr);
					//stopchat = true;
					runChat();
				}
				catch(IOException fehler)
				{
					System.out.println(fehler);
				}	
			}
			else
			{
				System.out.println("JA");
				System.out.println(portnr);
				System.out.println(stopchat);
				try 
				{
					server = new ServerSocket(portnr);
					stopchat = true;
					System.out.println(stopchat);
					runChat();
				}
				catch(IOException fehler)
				{
					System.out.println(fehler);
				}	
			}
				
			start.setEnabled(false);
			stop.setEnabled(true);
			jt.setEnabled(false);
				
		}//Ende if Start
		
		if(e.getActionCommand().equalsIgnoreCase("Stop"))
		{
			try
			{
				server.close(); 
				stopchat = false;
				runChat();
			}
			catch(IOException fehler){System.out.println(fehler);};	
			
			stop.setEnabled(false);
			start.setEnabled(true);
			jt.setEnabled(true);
		}
	}//Ende Action Performed
    
//----Mein SystemTray-------------------------------------------------------------------------------------
	public void mytray()
	{
		try 
		{ 
		   sysTray.setIcon(sysTrayIcon, sysTrayToolTip);  // Fügt dem SystemTray mit einem Ikon und Tooltip unter Windows hinzu 
		} 
		catch(SysTrayIconException exc)  // Fängt Fehler ab 
		{ 
		   System.out.println(exc.getMessage()); 
		} 
       
		if (minArg) 
		{ 
		   sysTray.addMenuItem("Zeigen",false);  // Fügt ein SystemTray Men¸ Eintrag hinzu 
		   sysTray.addMenuItem("Verstecken",true); 
		} 
		else 
		{ 
		   sysTray.addMenuItem("Zeigen",true); 
		   sysTray.addMenuItem("Verstecken",false); 
		} 
		//sysTray.addMenuItem("Info",false,true); 
		sysTray.addMenuItem("Beenden"); 
		sysTray.setPopupMenu(2); 
       
		sysTray.addPropertyChangeListener(new java.beans.PropertyChangeListener() 
		{  // Dieser Bereich definiert was man gemacht werden soll 
			   public final void propertyChange(java.beans.PropertyChangeEvent e) 
			   { 
				  // Left mouse button event listener 
				  if(e.getPropertyName().equals("LM_Button")) 
				  { 
					 if (isVisible()) 
					 { 
						setVisible(false); 
						sysTray.replaceItem(1,false); 
						sysTray.replaceItem(2,true); 
					 } 
					 else 
					 { 
						setVisible(true); 
						sysTray.replaceItem(1,true); 
						sysTray.replaceItem(2,false); 
					 } 
				  } 
				  // Right mouse button event listener 
	  /*             if(e.getPropertyName().equals("RM_Button")) { 
					  // ... 
				   } 
	  */             // "Zeigen" menu item event listener 
				   if(e.getPropertyName().equals("Zeigen")) 
				   { 
					  setVisible(true); 
					  sysTray.replaceItem(1,true); 
					  sysTray.replaceItem(2,false); 
				   } 
				   // "Verstecken" menu item event listener 
				   if(e.getPropertyName().equals("Verstecken")) 
				   { 
					  setVisible(false); 
					  sysTray.replaceItem(1,false); 
					  sysTray.replaceItem(2,true); 
				   } 
				   // "Info" menu item event listener 
				   if(e.getPropertyName().equals("Info")) 
				   { 
					 /*if(istInfo == false)
					 {
						InfoFenster info = new InfoFenster();
						info.show(); 
						istInfo = true;
					 }*/
				   } 
				   // "Exit" menu item event listener 
				   if(e.getPropertyName().equals("Beenden")) 
				   { 
						if(counter > 0)
						{
							setVisible(true);
							sysTray.replaceItem(1,true); 
							sysTray.replaceItem(2,false); 
							//Dialog aus dem Sys Tray heraus
							Object[] options = { "JA", "Nein"}; 
							int antwort=-1; 
							antwort=(JOptionPane.showOptionDialog(null, "Es ist/sind noch "+counter+" Client(s) verbunden! \n\nDienst beenden?", "Warnung", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]));
							if(antwort == 0)
							{
								setVisible(false); 
								dispose(); 
								System.exit(0);
							}
						}
						else	  
						{
							sysTray.freeMemoryExit(); 
							setVisible(false); 
							dispose(); 
							System.exit(0); 
						}
				   } 
			  } 
			});
	}
//Ende Tray---------------------------------------------------------------------------------------------------
}

MfG Ronn
 

Illuvatar

Top Contributor
joschika hat gesagt.:
Code:
           //Port ändern--------------------------------------- 
         if(!jt.getText().equalsIgnoreCase("5555")) 
         { 
            portnr = Integer.parseInt(jt.getText()); 
            portadresse = jt.getText(); 
            ChatServerPanel.lPortadresse.setText("Portadresse : " +portadresse); 
             
            try 
            { 
               server = new ServerSocket(portnr); 
               //stopchat = true; 
               runChat(); 
            } 
            catch(IOException fehler) 
            { 
               System.out.println(fehler); 
            }    
         }

Ich vermute mal, adss das hier die Stelle ist, wo der Port geändert werden soll.
Ersetze doch mal das
server = new ServerSocket (portnr);
durch das, was ich oben gepostet habe, und schau mal, ob es dann klappt.
 

joschika77

Bekanntes Mitglied
Habs probiert.

Code:
	public void actionPerformed(ActionEvent e) 
	{
		if(e.getActionCommand().equalsIgnoreCase("Start"))
		{
			//Port ändern---------------------------------------
			if(!jt.getText().equalsIgnoreCase("5555"))
			{
				portnr = Integer.parseInt(jt.getText());
				portadresse = jt.getText();
				ChatServerPanel.lPortadresse.setText("Portadresse : " +portadresse);
				
				try 
				{ 
					//server = new ServerSocket(portnr);
					server.bind (new InetSocketAddress (portnr));
					stopchat = true;
					runChat();
				}
				catch(IOException fehler)
				{
					System.out.println(fehler);
				}	
			}
			else
			{
				System.out.println(portnr);
				System.out.println(stopchat);
				try 
				{
					//server = new ServerSocket(portnr);
					server.bind (new InetSocketAddress (portnr));
					stopchat = true;
					System.out.println(stopchat);
					runChat();
				}
				catch(IOException fehler)
				{
					System.out.println(fehler);
				}	
			}
				
			start.setEnabled(false);
			stop.setEnabled(true);
			jt.setEnabled(false);
				
		}//Ende if Start
		
		if(e.getActionCommand().equalsIgnoreCase("Stop"))
		{
			try
			{
				server.close(); 
				stopchat = false;
				runChat();
			}
			catch(IOException fehler){System.out.println(fehler);};	
			
			stop.setEnabled(false);
			start.setEnabled(true);
			jt.setEnabled(true);
		}
	}//Ende Action Performed

Funktioniert leider nicht.Oder meinst du das anders?

MfG Ronn
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Custom E Mail Adresse mithilfe Serversocket oder ähnliches Netzwerkprogrammierung 21
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D ServerSocket - Socket Verbindungsart Netzwerkprogrammierung 3
J 1 Socket - 2 Serversocket Netzwerkprogrammierung 4
J Client - Serversocket Netzwerkprogrammierung 1
Seikuassi Socket ServerSocket mehrmals erzeugen Netzwerkprogrammierung 1
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
J ServerSocket sauber beenden Netzwerkprogrammierung 3
H ServerSocket.accept() unterbrechen Netzwerkprogrammierung 3
TheJavaKid ServerSocket beendet mit PuTTy Netzwerkprogrammierung 9
T ServerSocket.accept Rückgabetyp casten Netzwerkprogrammierung 3
P Socket Daten senden mit ServerSocket? Netzwerkprogrammierung 2
4 Socket Kann kein ServerSocket erstellen Netzwerkprogrammierung 4
D Socket ServerSocket Push Netzwerkprogrammierung 5
G ServerSocket.accept() überschreibt IP-Adresse Netzwerkprogrammierung 4
C serversocket.accept() klappt nicht Netzwerkprogrammierung 10
Tobse HTTP ServerSocket HTTP Netzwerkprogrammierung 4
X FAQ Frage - Netzwerkgrundlagen - ServerSocket und Socket Netzwerkprogrammierung 4
M Wahrnehmen, dass ServerSocket geschlossen wurde Netzwerkprogrammierung 14
T ServerSocket bleibt beim lesen von Input hängen Netzwerkprogrammierung 2
M ServerSocket.accept() abbrechen Netzwerkprogrammierung 8
Schandro Herausfinden ob hinter einem Port bereits ein ServerSocket steckt Netzwerkprogrammierung 2
2 Class mit ServerSocket erbt von Thread? Netzwerkprogrammierung 3
T Java Socket und ServerSocket über Internet-IP? Netzwerkprogrammierung 9
dayaftereh serverSocket.accept(); Wecken Netzwerkprogrammierung 2
G Frage zu Serversocket-Beispiel aus der FAQ Netzwerkprogrammierung 17
D Komisches Fenster bei Serversocket Netzwerkprogrammierung 2
M Kommunikation zwischen ServerSocket und Socket Netzwerkprogrammierung 2
F ServerSocket im internet zugänglich machen Netzwerkprogrammierung 15
H ServerSocket -> Zugriff nur von localhost Netzwerkprogrammierung 6
P Serversocket schmeißt immmer EOFEXCEPTION Netzwerkprogrammierung 2
A serversocket soll anfrage vom handy entgegennehmen Netzwerkprogrammierung 4
P Problem mit Socket und ServerSocket Netzwerkprogrammierung 2
S ServerSocket merkt nicht, wenn keiner mehr da ist Netzwerkprogrammierung 8
J ServerSocket vs. DatagramSocket Netzwerkprogrammierung 2
A ServerSocket prinzipielle Frage Netzwerkprogrammierung 5
D Problem ServerSocket global Netzwerkprogrammierung 3
G einfache Frage zu ServerSocket ... Netzwerkprogrammierung 5
T Socket Socket connections schließen? Netzwerkprogrammierung 2
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
D Socket Socket absichtlich so schließen, dass Gegenseite java.net.SocketException: Connection reset wirft Netzwerkprogrammierung 4
G Socket NIO2 Problem mit AsynchronousSocketChannel beim Schließen Netzwerkprogrammierung 3
S Socket schließen mit .close() Netzwerkprogrammierung 4
P Warum lässt sich mein Server und mein Client einfach nicht schließen?!?! Netzwerkprogrammierung 16
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
J URLConnection schließen ? Netzwerkprogrammierung 6
P problem beim schließen eines Streams Netzwerkprogrammierung 6
G Socket sauber schließen - Prozessor Auslastung 100% Netzwerkprogrammierung 3
M Ende des Streams ohne Schließen/Checksumme mitsenden Netzwerkprogrammierung 2
MaxG. Website in Swing öffnen Netzwerkprogrammierung 4
J HTTP Befehl via HTTP senden ohne Browser öffnen Netzwerkprogrammierung 3
G HTTP URL öffnen schlägt fehl Netzwerkprogrammierung 3
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
nrg HTTP URLConnection immer neu öffnen? Netzwerkprogrammierung 6
Dit_ FTP Download | "PassiveMode"-Socket öffnen Netzwerkprogrammierung 4
H Mit Java ein JPG auf einem Server öffnen. Netzwerkprogrammierung 7
P Textdateien aus Oracle-DB mittels Java auslesen und öffnen Netzwerkprogrammierung 7
K öffnen des socket schlägt fehl -> ABER: keine exception . Netzwerkprogrammierung 2
G iexplorer öffnen Netzwerkprogrammierung 3
K Wenn socket geöffnet, warten dann öffnen ! Netzwerkprogrammierung 3
J Callto-Link mit Java öffnen ?? (unknown protocol) Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben