Hallo ich habe das Problem das sich zwei Computer bei mir zuhause sich über interne IP's mit Sockets nicht verbinden ich habe Folgenden Quelltext:
Client.java:
MainFrame.java:
Server.java:
ChatDienst.java:
Bitte einfach eine Lösung in Codeform schreiben danke.:toll:
Client.java:
Java:
package mainpackage;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
static String text;
public static void newConection(String IP,int Port) {
String hostName = (IP);
int port = (Port);
Socket c = null;
try {
hostName = "0.0.0.0";
port = 25565;
c = new Socket (hostName,port);
BufferedReader vomServer = new BufferedReader(new InputStreamReader(c.getInputStream()));
PrintWriter zumServer = new PrintWriter(c.getOutputStream(),true);
BufferedReader vonTastatur = new BufferedReader(new InputStreamReader(System.in));
text = (vomServer.readLine());
MainFrame.newText(text);
c.close();
}catch (Exception e) {
e.printStackTrace();
}
}
public static void newConectionT(String IP,int Port,String textE) {
String hostName = (IP);
int port = (Port);
Socket c = null;
String not;
try {
hostName = "0.0.0.0";
port = 25565;
c = new Socket (hostName,port);
BufferedReader vomServer = new BufferedReader(new InputStreamReader(c.getInputStream()));
PrintWriter zumServer = new PrintWriter(c.getOutputStream(),true);
BufferedReader vonTastatur = new BufferedReader(new InputStreamReader(System.in));
not = (vomServer.readLine());
zumServer.println(textE);
text = vomServer.readLine();
MainFrame.newText(text);
c.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
Java:
package mainpackage;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
public class MainFrame extends JFrame {
private JPanel contentPane;
static JTextField textField;
private JTextField textField_1;
static JButton btnLoad;
static JButton btnNewButton;
static JTextArea textArea;
static JButton btnNewButton_1;
static String c = (">STP Server: ");
public MainFrame() {
KnopfListener kl = new KnopfListener();
setTitle("S.G. Server Browser (STP)");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JProgressBar progressBar = new JProgressBar();
progressBar.setOrientation(SwingConstants.VERTICAL);
progressBar.setBounds(416, 39, 28, 234);
contentPane.add(progressBar);
textField = new JTextField();
textField.setBounds(65, 6, 233, 28);
contentPane.add(textField);
textField.setColumns(10);
btnLoad = new JButton("Load");
btnLoad.setBounds(310, 7, 100, 29);
btnLoad.addActionListener(kl);
contentPane.add(btnLoad);
JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setBounds(5, 46, 405, 195);
contentPane.add(scrollPane_1);
textArea = new JTextArea("");
textArea.setEditable(false);
scrollPane_1.setViewportView(textArea);
textField_1 = new JTextField();
textField_1.setBounds(127, 245, 199, 28);
contentPane.add(textField_1);
textField_1.setColumns(10);
JTextArea txtrAdress = new JTextArea();
txtrAdress.setEditable(false);
txtrAdress.setText("Adress:");
txtrAdress.setBounds(5, 12, 55, 16);
contentPane.add(txtrAdress);
JTextArea txtrMessageToServer = new JTextArea();
txtrMessageToServer.setEditable(false);
txtrMessageToServer.setText("Message to Server:");
txtrMessageToServer.setBounds(5, 251, 117, 19);
contentPane.add(txtrMessageToServer);
btnNewButton = new JButton("Send");
btnNewButton.setBounds(322, 246, 82, 29);
btnNewButton.addActionListener(kl);
contentPane.add(btnNewButton);
btnNewButton_1 = new JButton("Info");
btnNewButton_1.setBounds(405, 3, 39, 36);
btnNewButton_1.addActionListener(kl);
contentPane.add(btnNewButton_1);
}
class KnopfListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String IP;
if(e.getSource() == btnLoad) {
IP = (textField.getText());
String[] sr = IP.split(":");
int Port = Integer.parseInt(sr[1]);
Client.newConection(sr[0], Port);
//System.out.println();
}else if(e.getSource() == btnNewButton) {
String textee = textField_1.getText();
IP = (textField.getText());
String[] sr = IP.split(":");
int Port = Integer.parseInt(sr[1]);
Client.newConectionT(IP, Port, textee);;
}else if(e.getSource() == btnNewButton_1) {
Info.SA();
}
}
}
public static void newText(String text) {
String text1 = "";
String save = (c +"" + textArea.getText());
text1 = text;
textArea.setText(save + "\n"+ text1);
c = "";
}
public static void main(String[] args) {
MainFrame frame = new MainFrame();
frame.setVisible(true);
}
}
Java:
package server;
import java.net.*;
import java.io.*;
public class Server {
static String ex;
public static void main(String [] args) {
try {
int port = 25565;
ServerSocket server = (new ServerSocket(port));
ServerInterface.text(">Server running");
ServerInterface.text(">" + server);
while (true) {
Socket s = server.accept();
new ChatDienst(s).start();
}
}catch (ArrayIndexOutOfBoundsException ae){
ae.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java:
package server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ChatDienst extends Thread {
String text = "";
BufferedReader vomClient;
PrintWriter zumClient;
Socket s;
public ChatDienst(Socket s) {
try {
this.s = s;
vomClient = new BufferedReader(new InputStreamReader(s.getInputStream()));
zumClient = new PrintWriter(s.getOutputStream(),true);
}catch(IOException e) {
e.printStackTrace();
System.out.println(">Fehler bei Client");
}
}
public void start() {
String text;
try {
System.out.println(">Neuer Client! ("+s+")");
zumClient.println(">Hallo du bist Verbunden! Dies ist der erste STP Server der Welt!");
text = (vomClient.readLine());
if(text.equalsIgnoreCase("News")) {
text = ">Thanks for using STP.";
}else{
text = ">Error invalied Command!";
}
zumClient.println(text);
}catch(Exception e) {
//e.printStackTrace();
}
}
}