Forums Register Login
Serversocket not able to read data
Hi ,

I have one server socket that will read the data from multiple clients which are writing the data to the server in ascii format at a particular port, but currently i am not able to read the data on the port.
the server socket that can accept many client connection i.e whenever a connection is available it will accept it and reads the ascii data from the client in that port.
The issue is that I am able to accept all the incoming connection but not able to read the ascii data writtern to the port.

I have implemented the ServerSocketChannel and Selector where once the ServerSocketChannel is setup I am iterating over the selection keys
ServerSocketChannel configuration

selector = Selector.open();
serverSocketChannel = ServerSocketChannel.open();
serverSocketChannel.socket().bind( new InetSocketAddress(port));
serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);

Iterator<SelectionKey> keyIter = selector.selectedKeys().iterator();
while (keyIter.hasNext()) {

SelectionKey key = keyIter.next();
now check if key.isAcceptable() then accept connection , if key.isReadable() then read the data.

the reading logic is :
int bytesRead = -1;
SocketChannel clntChan = (SocketChannel) key.channel();
ByteBuffer buf = (ByteBuffer)key.attachment();

if channel is connected then
bytesRead = clntChan.read(buf);

here i am getting the bytesRead value as 0

while the clients are continously writing ascii strings to the port


This thread has been viewed 766 times.

All times above are in ranch (not your local) time.
The current ranch time is
Dec 14, 2018 05:29:05.