package tcpnio;
/***********************************************************************
* Ce programme emet a destination du port argv[1] sur la machine
* argv[0] un message (datagramme UDP) constitue de argv[2] caracteres
*
* ex: java DgramSend linux03 2005 1000
*
* L'emission se fait par send sur un DatagramSocket dans le domaine
* INET.
***********************************************************************/
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.nio.channels.DatagramChannel;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.Set;
import csc4509.SockUtil;
import csc4509.Message;
public class MainTcpNioServer {
boolean debug = false;
public static void main(String[] argv) {
if (argv.length != 1) {
System.out.println("usage: java MainTcpNioServer <port>");
return;
}
try {
ServerSocketChannel ssc = ServerSocketChannel.open();
ServerSocket ss = ssc.socket();
InetSocketAddress rcvAddress = new InetSocketAddress( Integer.parseInt(argv[0]) );
ss.bind( rcvAddress );
Message mess = new Message(1);
/* Socket en écoute */
while (true) {
SocketChannel sc = ssc.accept();
while (true) {
mess.readMessage(sc);
mess.printMessage();
}
}
} catch (SocketException se) {
se.printStackTrace();
return;
} catch (UnknownHostException ue) {
ue.printStackTrace();
return;
} catch (IOException ie) {
ie.printStackTrace();
return;
}
}
}