Я пытаюсь написать свой первый сервер сокетов, поэтому решил начать с чего-то очень простого, чтобы просто понять поток :) Я пишу простой Java-сервер эха, но вещь что (по какой-то причине ?!) Я не получаю ответ сервера в клиенте, хотя запрос получен на сервере.Простая проблема эхо-сервера Java
package poc.client;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
final Socket socket = new Socket((String) null, 50000);
final BufferedReader reader = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
final PrintWriter writer = new PrintWriter(
socket.getOutputStream(), true);
writer.println("ala bala\r\n");
writer.flush();
writer.close();
System.out.println(reader.readLine());
System.out.flush();
} catch (Exception ex) {
Logger.getAnonymouseLogger().throwing(TAG, "main", ex);
}
}
}
И часть сервера
package poc.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
/**
* debugging purposes only
*/
@SuppressWarnings("unused")
private static final String TAG = Server.class.getSimpleName();
public static void main(String[] args) {
try {
final ServerSocket socket = new ServerSocket(50000);
while (true) {
final Socket clientSocket = socket.accept();
final BufferedReader reader = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
final PrintWriter writer = new PrintWriter(clientSocket
.getOutputStream(), true);
writer.println(reader.readLine());
writer.flush();
writer.close();
}
} catch (IOException e) {
Logger.getAnonymouseLogger().throwins(TAG, "main",ex);
}
}
}
Я прочитал все Oracle основных сокетов учебников/и т.д., но я просто не могу понять, что это неправильно - я успешно писать в сокет сервера, но я похоже, не могут получить ответ.
Вы не должны игнорировать исключения. Это похоже на попытку водить машину с завязанными глазами. –
Я не вижу нигде в вашем серверном коде, где вы получаете IP-адрес клиента. – Chad
@HovercraftFullOfEels, как предложено именем пакета, это PoC, а не реальный код. Спасибо за совет. – asenovm