Создал простой асинхронный клиент-сервер, при подключении клиент посылает на сервер сообщение, при попытке принять сообщение на стороне сервера выскакивает исключение :
java.io.IOException: Указанное сетевое имя более недоступно.
at sun.nio.ch.Iocp.translateErrorToIOException(Unknown Source)
at sun.nio.ch.Iocp.access$700(Unknown Source)
at sun.nio.ch.Iocp$EventHandlerTask.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
вот клиент:
package fileSocket;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousSocketChannel;
import java.nio.channels.CompletionHandler;
public class Main {
public static void main(String [] args) throws InterruptedException,
IOException {
AsynchronousSocketChannel sockChannel =
AsynchronousSocketChannel.open();
//try to connect to the server side
sockChannel.connect( new InetSocketAddress("192.168.0.102", 4555),
sockChannel, new CompletionHandler<Void, AsynchronousSocketChannel >() {
@Override
public void completed(Void result, AsynchronousSocketChannel
channel ) {
//start to read message
System.out.println("connected");
//write an message to server side startWrite( channel,
message, messageWritten );
ByteBuffer message = ByteBuffer.wrap("ping".getBytes());
channel.write(message);
System.out.println("sadasdasd");
}
@Override
public void failed(Throwable exc, AsynchronousSocketChannel
channel) {
System.out.println( "fail to connect to server");
}
});
}
}
вот сервер:
package ru.NewAgregatorServer.NewAgregatorServer;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousChannelGroup;
import java.nio.channels.AsynchronousServerSocketChannel;
import java.nio.channels.AsynchronousSocketChannel;
import java.nio.channels.CompletionHandler;
import java.sql.SQLException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class AppRPC {
public static void main(String [] args) throws IOException,
InterruptedException, SQLException, ExecutionException {
AsynchronousChannelGroup group =
AsynchronousChannelGroup.withThreadPool(Executors
.newSingleThreadExecutor());
AsynchronousServerSocketChannel server
= AsynchronousServerSocketChannel.open(group);
server.bind(new InetSocketAddress("192.168.0.102", 4555));
server.accept("Client connection",
new CompletionHandler<AsynchronousSocketChannel, Object>() {
public void completed(AsynchronousSocketChannel ch, Object att) {
System.out.println("Accepted a connection");
ByteBuffer buf = ByteBuffer.allocate( 1024 );
//ch.read(buf).get();
ch.read(buf, buf, new CompletionHandler<Integer, ByteBuffer>()
{
@Override
public void completed(Integer result, ByteBuffer buf ) {
System.out.println( "received " + result + " bytes");
buf.flip();
}
@Override
public void failed(Throwable ex, ByteBuffer buf) {
ex.printStackTrace();
}
});
byte [] b = new byte[1024];
buf.get(b);
System.out.println(new String(b));
}
public void failed(Throwable exc, Object att) {
System.out.println("Failed to accept connection");
}
});
group.awaitTermination(Long.MAX_VALUE, TimeUnit.SECONDS);
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Зашифровал строку методом RSA, дешифрую, а там вопросительные знаки и "кракозябра"До этого пробовал все работало
Есть xml с такой строчкой <string name="user">Bill</string> Парсить xml я умею, но вот как по его name получить содержимое, чтобы отображалось Bill? Это не строковой...
Не могу запустить проект справа вверху пишет ошибку: