Beruflich Dokumente
Kultur Dokumente
import com.sun.corba.se.spi.activation.RepositoryPackage.ServerDef;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Set;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/**
*
* @author Muhamed
*/
public class myFrame extends JFrame{
public myFrame() {
setResizable(false);
setTitle("Client");
setSize(560,400);
Container cp=getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JLabel("Chat History"));
cp.add(myChatHistory);
cp.add(new JLabel("Chat Box : "));
cp.add(myUserHistory);
cp.add(Send);
cp.add(Start);
cp.add(myLabel);
cp.add(Server);
cp.add(User);
Send.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(ChatClient!=null) {
System.out.println(UserText.getText());
ChatClient.SendMassage(UserText.getText());
}
}
});
Start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChatClient=new Client();
ChatClient.start();
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new myFrame();
}
ServerName=Server.getText();
System.out.println(ServerName);
UserName=User.getText();
Connect(ServerName);
myRead.start();
while (true) {
ReadMassage();
try {
Thread.sleep(30);
} catch (InterruptedException ie){
}
}
}
public void Connect(String hostname) {
try {
ReadSelector = Selector.open();
InetAddress addr = InetAddress.getByName(hostname);
SChan = SocketChannel.open(new InetSocketAddress(addr, PORT));
SChan.configureBlocking(false);
catch (Exception e) {
}
}
public void SendMassage(String messg) {
prepareBuffer(UserName+" says: "+messg);
channelWrite(SChan);
}
Thread.sleep(5);
} catch (IOException ex) {
ex.printStackTrace();
} catch(InterruptedException ex) {
}
writeBuffer.rewind();
}
try {
ReadSelector.selectNow();
Iterator i = readyKeys.iterator();
while (i.hasNext()) {
if (nbytes == -1) {
ChatBox.append("You logged out !\n");
channel.close();
} else {
StringBuffer sb = (StringBuffer)key.attachment();
ReadBuffer.flip( );
String str = asciiDecoder.decode( ReadBuffer).toString( );
sb.append( str );
ReadBuffer.clear( );