import java.nio.ByteBuffer;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.nio.channels.Selector;
import java.nio.channels.SelectionKey;
import java.nio.channels.SelectableChannel;
import java.net.InetAddress;
import java.net.Socket;
import java.net.ServerSocket;
import java.net.InetSocketAddress;
import java.util.Iterator;
public class MyServer{
SocketChannel sc;
ServerSocketChannel ssc;
Selector selector;
ByteBuffer br= ByteBuffer.allocate(1024);
MyServer(){
try{
InetSocketAddress addr=new InetSocketAddress(InetAddress.getLocalHost(),26);
ssc=ServerSocketChannel.open();
ServerSocket ss=ssc.socket();
ss.bind(addr);
ssc.configureBlocking(false);
selector=Selector.open();
ssc.register(selector,SelectionKey.OP_ACCEPT);
while(!Thread.interrupted())
{
int n=selector.select();
if(n<0) continue;
Iterator it=selector.selectedKeys().iterator();
while(it.hasNext())
{
SelectionKey sk=(SelectionKey)it.next();
if(sk.isAcceptable()){
ServerSocketChannel sssc=(ServerSocketChannel)sk.channel();
sc=sssc.accept();
sc.configureBlocking(false);
sc.register(selector,SelectionKey.OP_READ);
br.clear();
br.put("hello! I am mayan server!".getBytes());
br.flip();
sc.write(br);
}
}
}
}catch(Exception e){}
finally{
try{
sc.close();
ssc.close();
}catch(Exception e){}
}
}
public static void main(String args[]){
new MyServer();
}
}
import java.nio.channels.SocketChannel;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.Selector;
import java.nio.channels.SelectionKey;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MyClient {
SocketChannel sc;
public MyClient(){
try{
InetSocketAddress addr=new InetSocketAddress(InetAddress.getLocalHost(),26);
sc=SocketChannel.open();
sc.connect(addr);
if(sc.finishConnect())
{ System.out.println("connection has been established!...");
}
}catch(IOException ioe){
System.err.println("sth. is wrong with br.readline() ");
}finally{
try{
sc.close();
}catch(IOException ioe){
System.err.println("sth. is wrong with br.readline() ");
}
}
}
public static void main(String args[]){
new MyClient();
}
}