chat als applet umgeschrieben - unbekannter fehler :(

Morphl

Neues Mitglied
Hallöchen bin recht neu in der sprache - außer büchern und tutorials keine praxiserfahrung :)

so zu meinem problem: hab im inet nen quellcode für nen einfacheres chatprogram gefunden - da ich vorhab ein java game über kurz oder lang als applet zu schreiben fand ich das recht interesant

das programm beruht auf progrämchen (server + client), wobei ich versucht habe den clienten als webapp zum laufen zu bringen

zu meinem problem:

unter netbeans startet auch das app, wenn ichs inne webseite einfüge lokal abspeichere und starte kommts nicht weiter als bis zum jinput dialogue - der output von ( chooseNick(); ) kommt nichtmehr im applet an

der code:

server

Java:
package chatserver2;

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

public class ChatServer
{
	public static ChatServer server;
	public static int port = 2444;
	public static ServerSocket serverSocket;
	public static Socket temp;
	public static ArrayList<User> users = new ArrayList<User>();
	public ChatServer(int ePort)
	{
		port = ePort;
		try{
			serverSocket = new ServerSocket(port);
			System.out.println("Server opened on port: " + port);
		}catch(Exception e){
			System.out.println("Server Port in use. Please choose another port.");
			System.exit(1);
		}
	}
	public static void main(String args[])
	{
		server = new ChatServer(Integer.parseInt(JOptionPane.showInputDialog("Enter the port #")));
		Thread mainLoop = new Thread(new Runnable()
		{
			public void run()
			{
				while(true)
				{
					try{
						temp = serverSocket.accept();
					} catch(Exception e){}
					User user = new User("nameless",temp);
					users.add(user);
					System.out.println("A new user has connected to the server.");
					Thread t = new Thread(new Runnable()
					{
						public void run()
						{
							Socket temp2 = temp;
							boolean stop = false;
							while(!stop)
							{
								String msg = "poop";
								try {
									msg = users.get(findUser(temp2)).getIn().readLine();
								} catch(SocketException e) {
									System.out.println(users.get(findUser(temp2)).getName() 
+ " has disconnected from the server.");
									sendAll(users.get(findUser(temp2)).getName() 
+ " has disconnected from the server.");
									users.remove(findUser(temp2));
									stop = true;
									break;
								}
								catch(IOException e){}
								if(msg.startsWith("/"))
								{
									if(msg.startsWith("/nick"))
									{
										String[] MSG = msg.split(" ");
										boolean found = false;
										for(int x = 0; x < users.size(); x++)
										{
											if(users.get(x).getName().equalsIgnoreCase(MSG[1]))
											{
												users.get(findUser(temp2)).getOut()
.println("Nickname is already in use.");
												found = true;
											}
										}
										if(!found)
										{
											sendAll(users.get(findUser(temp2)).getName() 
+ " is now known as " + MSG[1]);
											users.get(findUser(temp2)).changeNick(MSG[1]);
										}
									}
								}
								else
								{
									sendAll(msg,users.get(findUser(temp2)).getName());
								}
							}
						}
					});
					t.start();
				}
			}
		});
		mainLoop.start();
	}

	public static int findUser(Socket temp)
	{
		for(int x = 0; x < users.size(); x++)
		{
			if(users.get(x).getSocket() == temp)
			{
				return x;
			}
		}
		return -1;
	}


	public static int findUserByName(String name)
	{
		for(int x = 0; x < users.size(); x++)
		{
			if(users.get(x).getName().equalsIgnoreCase(name))
			{
				return x;
			}
		}
		return -1;
	}

	public static void sendAll(String msg, String name)
	{
		for(int x = 0; x < users.size(); x++)
		{
			users.get(x).getOut().println(name + ":" + msg);
		}
	}

	public static void sendAll(String msg)
	{
		for(int x = 0; x < users.size(); x++)
		{
			users.get(x).getOut().println(msg);
		}
	}
}

class User
{
	public String username;
	public PrintWriter out;
	public BufferedReader in;
	public Socket userSocket;
	public User(String Eusername, Socket EuserSocket)
	{
		username = Eusername;
		userSocket = EuserSocket;
		try {
			out = new PrintWriter(userSocket.getOutputStream(), true);
			in = new BufferedReader(new InputStreamReader(userSocket.getInputStream()));
		} catch(Exception e){}
	}

	public PrintWriter getOut()
	{
		return out;
	}

	public BufferedReader getIn()
	{
		return in;
	}

	public String getName()
	{
		return username;
	}

	public Socket getSocket()
	{
		return userSocket;
	}

	public void changeNick(String newstring)
	{
		username = newstring;
	}
}

der client:

Java:
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;

public class Oo extends JApplet implements ActionListener
{
	public int port;
	public String host;
	public String msg;
	public PrintWriter out;
	public BufferedReader in;
	public JTextArea messages;
	public JPanel displayPanel, sendPanel;
	public JFrame main;
	public JScrollPane messagePane;
	public JTextField sendM;
	public JButton send;

        	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == send)
		{
			out.println(sendM.getText());
			sendM.setText("");
		}
		sendM.requestFocusInWindow();
	}

	public void displayMsg(String themsg)
	{
		messages.append("\n" +themsg);
	}

	public void chooseNick()
	{
		String k = JOptionPane.showInputDialog("Choose a nickname.");
		out.println("/nick " + k);
	}

    @Override
    public void init() {

        try {
			host = JOptionPane.showInputDialog("Enter the host name of the server.");
			port = Integer.parseInt(JOptionPane.showInputDialog("Enter the port #"));
			Socket connection = new Socket(host, port);
			System.out.println("Now connected to " + host + ".");
			out = new PrintWriter(connection.getOutputStream(), true);
			in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

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


		displayPanel = new JPanel();

		messages = new JTextArea(20,35);
		messages.setEditable(false);
		messagePane = new JScrollPane(messages);
		displayPanel.add(messagePane);

		sendM = new JTextField(18);
		sendM.addKeyListener(new KeyListenerImpl());

		send = new JButton("Send");
		send.addActionListener(this);

		sendPanel = new JPanel();
		sendPanel.add(sendM);
		sendPanel.add(send);

		getContentPane().add(displayPanel,BorderLayout.NORTH);
		getContentPane().add(sendPanel,BorderLayout.SOUTH);

		setVisible(true);
		sendM.requestFocusInWindow();

                Thread t = new Thread(new Runnable()
			{

		public void run()
				{
                    try {
                    displayMsg("You are now connected to host: " + host);
                    chooseNick();
                    String msg2 = null;
                    msg2 = in.readLine();
                    while (msg2 != null) {
                        displayMsg(msg2);
                        msg2 = in.readLine();
                    }
                    } catch (IOException ex) {
                    Logger.getLogger(Oo.class.getName()).log(Level.SEVERE, null, ex);
                }
                                        }
			});
			t.start();
    }
       



    private class KeyListenerImpl implements KeyListener {

        public KeyListenerImpl() {
        }

        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                send.doClick();
            }
        }

        public void keyReleased(KeyEvent e) {
        }

        public void keyTyped(KeyEvent e) {
        }
    }
}

würd mich über ne konstruktive erklärung freuen :) (kann mir nur vorstellen das java durch sicherheitseinstellungen iwie die connection verbockt :( )
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
> kann mir nur vorstellen das java durch sicherheitseinstellungen iwie die connection verbockt

du redest von Connection und Socket?
vielleicht hat es damit überhaupt nix zu tun, das kann man doch leicht prüfen,
entferne doch erstmal alles zu diesem Thema,

ob ein
JOptionPane.showInputDialog()
als Applet funktioniert, wage ich zu bezweifeln
(edit: obwohl, wenn du nur vom Output sprichst, dann funktioniert das vielleicht schon ;) )
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Androbin Socket Fehlerhafter Applet-Chat Netzwerkprogrammierung 12
TheJavaKid Webcam-Chat im Applet (ChatRoulette Klon) Netzwerkprogrammierung 10
E Userliste für Chat Applet Netzwerkprogrammierung 4
R Java-Chat-Applet funktioniert nur in Eclipse Netzwerkprogrammierung 3
S Java Applet Chat Grundsatzfrage Netzwerkprogrammierung 6
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
L Chat Fenster Netzwerkprogrammierung 1
J Socket Ein Chat Server Tutorial Netzwerkprogrammierung 8
S Java Chat Server Netzwerkprogrammierung 8
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
P Chat in Java Netzwerkprogrammierung 3
C Java Chat Admin Kenzeichnung Netzwerkprogrammierung 14
D Chat Server/mehre Client Netzwerkprogrammierung 9
C Microsoft Comic Chat Netzwerkprogrammierung 0
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
O Chat (Server) sendet an verschieden Benutzer. Netzwerkprogrammierung 10
J Chat programmieren Netzwerkprogrammierung 12
L Chat Server programmieren Netzwerkprogrammierung 10
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
K Socket Chat-GUI eigenes Event nach Empfangen Netzwerkprogrammierung 2
K chat Netzwerkprogrammierung 13
F RMI einfacher Chat - Callbacks(?) funktionieren nicht Netzwerkprogrammierung 7
L Socket Chat funktioniert nicht Netzwerkprogrammierung 2
T Socket Java Chat Netzwerkprogrammierung 2
xDarkSunx Chat JFrame Netzwerkprogrammierung 3
xDarkSunx Hilfe Chat Login Netzwerkprogrammierung 7
E JAVA Chat Netzwerkprogrammierung 19
C Java Chat funktioniert nicht richtig Netzwerkprogrammierung 6
I Chat-Client empfängt nichts vom Server Netzwerkprogrammierung 3
A Socket UDP Chat Verbindungsproblem im WWW (Server sendet ins leere) Netzwerkprogrammierung 11
A Multi-User-Chat Netzwerkprogrammierung 2
M Socket Chat-Client-Problem Netzwerkprogrammierung 8
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
AMStyles Client Server basierter Chat Netzwerkprogrammierung 7
P Socket Chat selbst bauen + Multiusereditor Netzwerkprogrammierung 13
T Java Chat über UDP Netzwerkprogrammierung 7
Developer_X Habe fragen zur Chat Programmierung Netzwerkprogrammierung 4
P Java Multiuser Chat hohe Systemauslastung Netzwerkprogrammierung 24
D Hilfe ich komme bei meinem UDP chat Server nicht mehr weiter Netzwerkprogrammierung 9
B Die alte Leier: "Chat" Netzwerkprogrammierung 3
M chat funktioniert nicht (Connection refused: connect) Netzwerkprogrammierung 3
S Client-Server Chat Problem nur im lokalen Netztwerk Netzwerkprogrammierung 23
DamienX Chat Socketserver/Client. wo ist das Problem? Netzwerkprogrammierung 2
J Client-Client-Chat ohne Serverbeteiligung Netzwerkprogrammierung 2
A Wichtig für einen Chat? Netzwerkprogrammierung 4
R Java Chat über Inet connecten Netzwerkprogrammierung 3
F Chat Programm. Verständnisfrage while-Schleife Netzwerkprogrammierung 7
P Probleme bei Chat programm Netzwerkprogrammierung 2
C Voice Chat Netzwerkprogrammierung 3
G FAQ Chat geht nicht ? Netzwerkprogrammierung 4
T Schriftfarbe im Chat ändern Netzwerkprogrammierung 2
G ActionEvent klappt beim Chat nicht Netzwerkprogrammierung 5
J Kleines Problem mit Chat Server Netzwerkprogrammierung 2
T Chat-Client Netzwerkprogrammierung 12
G Chat zwischen applets: möglich? Netzwerkprogrammierung 2
T Chat mit mehreren Clients Netzwerkprogrammierung 3
C Chat , Streamproblem, PumpingException, Danke Netzwerkprogrammierung 2
S RMI Chat Problem, Client bekannt machen Netzwerkprogrammierung 2
V probleme mit dem chat programm Netzwerkprogrammierung 4
K Lokaler Chat Netzwerkprogrammierung 5
S Chat aufs Internet ausweiten Netzwerkprogrammierung 5
J Router behindert Chat Netzwerkprogrammierung 9
S Knuddels Chat System: Bot / Nachrichten verschicken? Netzwerkprogrammierung 6
G Chat - was brauch ich Netzwerkprogrammierung 2
André B. Brauche Hilfe bei Chat Netzwerkprogrammierung 6
K Problem mit "Chat" Netzwerkprogrammierung 2
N Java-Chat (lauffähig) macht Probleme auf der Konsole Netzwerkprogrammierung 6
Paule Acces denied bei Chat Netzwerkprogrammierung 6
B Multi-chat Problem Netzwerkprogrammierung 3
N Java Chat-Problem Netzwerkprogrammierung 4
G Java Chat mit HTML Cleint Netzwerkprogrammierung 3
G Chat Programm - was ist los? Netzwerkprogrammierung 9
A server mit 2 Ports : Mit und ohne SSL Chat system Netzwerkprogrammierung 10
Z chat: wann http und wann sockets verwenden? Netzwerkprogrammierung 11
M Socket Verbindungen für einen Chat Netzwerkprogrammierung 10
R Mini-Chat löst BindException aus Netzwerkprogrammierung 7
F Multiclient Chat Netzwerkprogrammierung 12
K Chat: Nur 1 Verbindung zum Server möglich :( Netzwerkprogrammierung 6
K Chat: Verbindung kommt nicht zu stande Netzwerkprogrammierung 6
S JAV07P SGD client/server chat Netzwerkprogrammierung 4
C IRC CHAT auslesen -> Sockets/input und output Streams Netzwerkprogrammierung 9
S Einfacher Multiuser chat in java Netzwerkprogrammierung 18
S Datei schreiben über Applet Netzwerkprogrammierung 8
N Applet/Applikation auf Xport laufen lassen Netzwerkprogrammierung 10
N Applet Access Denied Netzwerkprogrammierung 12
H Applet soll XML-File auf Server speichern Netzwerkprogrammierung 6
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
B FTP Applet mit FTP-Server-Zugriff sicher gestalten Netzwerkprogrammierung 12
J Applet soll Daten auf Server ablegen - einfachster Weg fuer n00bs? Netzwerkprogrammierung 4
O php - applet Kommunikation Netzwerkprogrammierung 9
B Client Server Applet keine Ahnung Netzwerkprogrammierung 3
R Applet --> PHP --> Applet Netzwerkprogrammierung 2
B RTP - Applet Starthilfe Netzwerkprogrammierung 7
B Globale IP-Adresse auslesen - Java Applet Netzwerkprogrammierung 2
S RMI RMI-Applet kommunikation funktioniert nicht Netzwerkprogrammierung 8
J Applet Security - java.security.AccessControlException: access denied Netzwerkprogrammierung 3
H Socket Mit Applet Verbindung zu eigener Website aufbauen Netzwerkprogrammierung 4
E Files von Server laden in Applet Netzwerkprogrammierung 5
aze Applet von Webseite aufrufen und mit diesem kommunizieren Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben