Hi
das Thema was ich hier ansprechen will, ist vielleicht etwas umfangreich, aber ich würde es trotzdem gerne ansprechen.
Ich selbst bin ziemlich neu auf dem Gebiet der Netzwerkprogrammierung in Java, habe aber vor mich in Zukunft immer mehr in diese Richtung zu bewegen, da mich das Thema an sich ziemlich reizt.
Deswegen hab ich vor einigen Tagen mit der Programmierung eines Chates angefangen.
Ich kann euch auch hier mal den Quellcode posten, der eigentlich ziemlich kurz ist, was auch der Anlass für meinen Post hier ist.
Wenn ich mir die anderen Chats so angucke, fällt mir immer auf, dass diese mit Threads und allem möglichen arbeiten.
Aber meiner ist halt ziemlich kurz gestrickt und deshalb frage ich, was man alles zu beachten hat.
Ich denke, das dieses Thema auch sehr nützlich für andere User sein kann, da man vielleicht etwas über die Grundlagen zum Programmieren eines Chates lernt.
Hier hab ich mal meinen Quellcode:
Der Launcher um das Programm zu starten
Der Server, welcher die Nachrichten abfängt und mit sich die GUI startet.
Der Client, welcher die Nachrichten verschickt.
Die Surface, auf welcher die Eingaben gemacht werden, und angezeigt werden.
Ich hoffe, dass dieses Thema euch anspricht und ihr mir helfen könnt.
MFG
Atomic92
das Thema was ich hier ansprechen will, ist vielleicht etwas umfangreich, aber ich würde es trotzdem gerne ansprechen.
Ich selbst bin ziemlich neu auf dem Gebiet der Netzwerkprogrammierung in Java, habe aber vor mich in Zukunft immer mehr in diese Richtung zu bewegen, da mich das Thema an sich ziemlich reizt.
Deswegen hab ich vor einigen Tagen mit der Programmierung eines Chates angefangen.
Ich kann euch auch hier mal den Quellcode posten, der eigentlich ziemlich kurz ist, was auch der Anlass für meinen Post hier ist.
Wenn ich mir die anderen Chats so angucke, fällt mir immer auf, dass diese mit Threads und allem möglichen arbeiten.
Aber meiner ist halt ziemlich kurz gestrickt und deshalb frage ich, was man alles zu beachten hat.
Ich denke, das dieses Thema auch sehr nützlich für andere User sein kann, da man vielleicht etwas über die Grundlagen zum Programmieren eines Chates lernt.
Hier hab ich mal meinen Quellcode:
Der Launcher um das Programm zu starten
Code:
package fcmm.server.com;
import java.io.IOException;
public class Launcher
{
public static void main(String[] args) throws IOException
{
//starte den Server
KleinerServer server = new KleinerServer();
}
}
Der Server, welcher die Nachrichten abfängt und mit sich die GUI startet.
Code:
package fcmm.server.com;
import java.net.*;
import java.io.*;
public class KleinerServer
{
ServerSocket server = new ServerSocket(1234);
Surface sf = new Surface();
String msg;
InputStreamReader input;
BufferedReader puffer;
public KleinerServer() throws IOException
{
//starte die GUI
sf.show();
//Nachrichten abfangen
while(true)
{
Socket client = server.accept();
input = new InputStreamReader(client.getInputStream());
puffer = new BufferedReader(input);
msg = puffer.readLine();
sf.updateText(msg);
input.close();
}
}
}
Der Client, welcher die Nachrichten verschickt.
Code:
package fcmm.server.com;
import java.net.*;
import java.io.*;
public class Client
{
PrintWriter output;
public Client() throws IOException
{
Socket server = new Socket("localhost", 1234);
output = new PrintWriter(new OutputStreamWriter(server.getOutputStream()));
}
//Nachrichten versenden
public void senden(String text)
{
output.println(text);
output.flush();
}
}
Die Surface, auf welcher die Eingaben gemacht werden, und angezeigt werden.
Code:
package fcmm.server.com;
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import javax.swing.*;
public class Surface extends JFrame implements ActionListener //, KeyListener
{
JTextArea msgIn;
JTextField msgOut;
JButton senden;
JScrollPane scroll;
Client client;
public void actionPerformed(ActionEvent e)
{
String label;
label = e.getActionCommand();
if(label.equals("Senden"))
{
send();
}
}
/*
public void keyTyped(KeyEvent ke)
{
int taste = ke.getKeyCode();
if(taste == KeyEvent.VK_ENTER);
{
send();
}
}
public void keyReleased(KeyEvent ke)
{
}
public void keyPressed(KeyEvent ke)
{
}
*/
public void send()
{
try
{
client = new Client();
client.senden(msgOut.getText());
msgIn.append("\n");
msgIn.append("Ich: ");
msgIn.append(msgOut.getText());
msgOut.setText("");
}
catch
(IOException io)
{
}
}
public Surface()
{
setSize(300,380);
setLocation(300,300);
setVisible(true);
setResizable(false);
setLayout(new FlowLayout(FlowLayout.CENTER, 20, 20));
setTitle("Chat");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
msgIn = new JTextArea(null, 10, 20);
msgIn.setEditable(false);
msgIn.append("Wilkommen");
scroll = new JScrollPane(msgIn);
msgOut = new JTextField(20);
senden = new JButton("Senden");
senden.addActionListener(this);
add(scroll);
add(msgOut);
add(senden);
//this.addKeyListener(this);
public void updateText(String msg)
{
StringBuffer text = new StringBuffer();
text.append("\n");
text.append("Du: ");
text.append(msg);
msgIn.append(text.toString());
}
}
Ich hoffe, dass dieses Thema euch anspricht und ihr mir helfen könnt.
MFG
Atomic92