Moin!
Ich hab nen Client und nen Server gebaut - funzt auch alles bestens aber das Problem ist, dass ich den einfach nicht beendet bekomme - warum?
Ja und jetzt noch jeweils wo ichs starte bzw beende...
Ich hab nen Client und nen Server gebaut - funzt auch alles bestens aber das Problem ist, dass ich den einfach nicht beendet bekomme - warum?
Java:
public void startServer(){
try{
de.hwrberlin.jemm.handlers.Einstellungen.einstellungen_laden();
port = new de.hwrberlin.jemm.Activator().user.port;
ServerSocket server = new ServerSocket(port);
InetAddress addr = InetAddress.getLocalHost();
System.out.println("Server auf "+addr.getHostName()+"/"+addr.getHostAddress()+":"+port+" gestartet ...");
while(true){
Socket client = server.accept();
new MultiThread(client).start();
}
}catch (IOException e){
System.err.println(e);
}
}
@Override
public void run() {
// TODO Auto-generated method stub
new Server().startServer();
}
Java:
public void login(String host,int port) throws IOException{
de.hwrberlin.jemm.handlers.Einstellungen.einstellungen_laden();
name = de.hwrberlin.jemm.Activator.user.name;
int rot = de.hwrberlin.jemm.Activator.user.farbe.getRed();
int green = de.hwrberlin.jemm.Activator.user.farbe.getGreen();
int blue = de.hwrberlin.jemm.Activator.user.farbe.getBlue();
socket = new Socket(host,port);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write(name+"&%"+rot+","+green+","+blue);
out.newLine();
out.flush();
login = true;
t = new Thread(this);
t.start();
}
public void logout(){
if (login){
try{
login=false;
t = null;
if (socket != null){
socket.close();
}
if (in != null){
in.close();
}
if (out != null){
out.close();
}
}catch (IOException e){
System.err.println(e);
}
}
}
Ja und jetzt noch jeweils wo ichs starte bzw beende...
Java:
btnConnect = new Button(composite, SWT.NONE);
btnConnect.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (connection==false){
try {
if (text.getText().length()==0){
text.setBackground(new Color(null, 255,153,153));
}else{
if (text_1.getText().length()==0){
text.setBackground(new Color(null, 255,255,255));
text_1.setBackground(new Color(null, 255,153,153));
}else{
new de.hwrberlin.jemm.net.Client().login(text.getText(),Integer.valueOf(text_1.getText()).intValue());
lblStatus.setText("Verbindung hergestellt");
btnHostSein.setEnabled(false);
text.setEnabled(false);
text_1.setEnabled(false);
connection = true;
btnConnect.setText("Trennen");
text.setBackground(new Color(null, 255,255,255));
text_1.setBackground(new Color(null, 255,255,255));
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("de.hwrberlin.jemm.views.editor");
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("de.hwrberlin.jemm.views.chatfenster");
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("de.hwrberlin.jemm.views.user");
Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell().setSize(1024, 768);
}
}
} catch (IOException e1) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(new Frame(), e1.toString());
} catch (PartInitException e2) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(new Frame(), e2.toString());
}
}else{
new de.hwrberlin.jemm.net.Client().logout();
lblStatus.setText("");
btnHostSein.setEnabled(true);
text.setEnabled(true);
text_1.setEnabled(true);
connection = false;
btnConnect.setText("Verbinden");
}
}
});
btnConnect.setBounds(116, 54, 68, 23);
btnConnect.setText("Verbinden");
Java:
btnHostSein = new Button(composite, SWT.NONE);
btnHostSein.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (connection==false){
server.start();
try {
de.hwrberlin.jemm.handlers.Einstellungen.einstellungen_laden();
new de.hwrberlin.jemm.net.Client().login("localhost",new de.hwrberlin.jemm.Activator().user.port);
InetAddress addr = InetAddress.getLocalHost();
lblStatus.setText(addr.getHostName()+"/"+addr.getHostAddress()+" : "+new de.hwrberlin.jemm.Activator().user.port);
btnConnect.setEnabled(false);
text.setEnabled(false);
text_1.setEnabled(false);
connection = true;
btnHostSein.setText("Unhosten");
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("de.hwrberlin.jemm.views.editor");
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("de.hwrberlin.jemm.views.chatfenster");
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("de.hwrberlin.jemm.views.user");
Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell().setSize(1024, 768);
if (de.hwrberlin.jemm.Activator.mail.show){
new de.hwrberlin.jemm.popup.Mail().setVisible(true);
de.hwrberlin.jemm.popup.Mail.mailText(addr.getHostAddress()+":"+new de.hwrberlin.jemm.Activator().user.port);
};
} catch (IOException e1) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(new Frame(), e1.toString());
} catch (PartInitException e2) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(new Frame(), e2.toString());
}
}else{
new de.hwrberlin.jemm.net.Client().logout();
lblStatus.setText("");
btnConnect.setEnabled(true);
text.setEnabled(true);
text_1.setEnabled(true);
btnHostSein.setText("Hosten");
connection = false;
}
}
});
btnHostSein.setBounds(10, 54, 68, 23);
btnHostSein.setText("Hosten");