#java #vb.net #sockets
#java #vb.net #розетки
Вопрос:
Я создал программу для отправки и получения данных от клиента к серверу, а для клиента я использовал java, а для сервера я использовал Visual Basic, так как установить соединение между клиентом и сервером, чтобы поддерживать его на стороне клиента (java)?
это код от клиента :
public static void Client(){
String print = "";
String dataDB = "Hello server, From Client";
try(Socket clientSocket = new Socket("localhost", port)){
clientSocket.getOutputStream().write(dataDB.getBytes("ASCII"));
while (clientSocket.getInputStream().available() == 0) {
Thread.sleep(100L);
}
byte[] data = new byte[clientSocket.getInputStream().available()];
int bytes = clientSocket.getInputStream().read(data, 0, data.length);
print = new String(data, 0, bytes, "ASCII");//.substring(4,bytes);
while(print.length()>0){
System.out.println("From Server : " print);
}
}catch (IOException ex){
System.out.println("I/O error: " ex.getMessage());
}catch(InterruptedException ie){
System.out.println("error: " ie.getMessage());
}catch(Exception e){
System.out.println("error: " e.getMessage());
}
}
Java-клиент — это консольное приложение, просто отправленное и получающее данные с сервера, который я пытался использовать clientSocket.setKeepAlive(true);
, но не работает.
Комментарии:
1. Учитывая, что Интернет спроектирован с учетом сбоев (он был разработан для работы, даже если несколько узлов были удалены атомными бомбами), вы всегда должны быть готовы к неожиданному закрытию сокетов.
2. @JohnEason Я исправил тег
3. @NomadMaker возможно ли, если я установлю тесное соединение другим методом?
4. например, я создал свойство private Socket clientSocket = null; и я создаю другой метод для обработки соединения и транзакции, а также другой метод для обработки connection.close
5. Не могли бы вы закрыть соединение, пока оно все еще используется?