62 lines
1.8 KiB
Java
62 lines
1.8 KiB
Java
import java.io.IOException;
|
|
import java.net.InetSocketAddress;
|
|
import java.net.ServerSocket;
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.channels.ServerSocketChannel;
|
|
import java.nio.channels.SocketChannel;
|
|
|
|
|
|
public class TCPReceiver {
|
|
ServerSocketChannel listener = null;
|
|
protected void mySetup()
|
|
{
|
|
InetSocketAddress listenAddr = new InetSocketAddress(4444);
|
|
|
|
try {
|
|
listener = ServerSocketChannel.open();
|
|
ServerSocket ss = listener.socket();
|
|
ss.setReuseAddress(true);
|
|
ss.bind(listenAddr);
|
|
System.out.println("Listening on port : "+ listenAddr.toString());
|
|
} catch (IOException e) {
|
|
System.out.println("Failed to bind, is port : "+ listenAddr.toString()
|
|
+ " already in use ? Error Msg : "+e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
public static void main(String[] args)
|
|
{
|
|
TCPReceiver dns = new TCPReceiver();
|
|
dns.mySetup();
|
|
dns.readData();
|
|
}
|
|
|
|
private void readData() {
|
|
ByteBuffer dst = ByteBuffer.allocate(4096);
|
|
try {
|
|
while(true) {
|
|
SocketChannel conn = listener.accept();
|
|
System.out.println("Accepted : "+conn);
|
|
conn.configureBlocking(true);
|
|
int nread = 0;
|
|
int data_recv = 0;
|
|
while (nread != -1) {
|
|
try {
|
|
nread = conn.read(dst);
|
|
data_recv += nread;
|
|
// System.out.println("data: " +nread);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
nread = -1;
|
|
}
|
|
dst.rewind();
|
|
}
|
|
System.out.println("Received data: "+data_recv);
|
|
}
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
} |