Я пытаюсь реализовать TCP-сервер и клиент на Java. Клиент должен отправить сообщение на Сервер, а Сервер должен отправить то же сообщение обратно Клиенту. Я получаю связь между обоими, но нет никакого сообщения. Я уже много искал в Интернете, и мой код настолько похож на другой код, но мое решение все еще не работает. Я довольно новичок в этой теме, поэтому я рад каждому совету.
Вот мой код клиента:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class Client
{
public static void main(String[] args)
{
final int PORT = 5000;
Socket socket = null;
try
{
socket = new Socket("localhost", PORT);
OutputStream os = socket.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
String message = "Hello World";
bw.write(message);
bw.flush();
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String echo = br.readLine();
System.out.println(echo);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
socket.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}
Код сервера:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public static void main(String[] args)
{
final int PORT = 5000;
ServerSocket serverSocket = null;
Socket socket = null;
try
{
serverSocket = new ServerSocket(PORT);
socket = serverSocket.accept();
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(is));
String message = br.readLine();
System.out.println(message);
OutputStream os = socket.getOutputStream();
BufferedWriter bw = new BufferedWriter(new
OutputStreamWriter(os));
bw.write("ECHO: " + message);
bw.flush();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
serverSocket.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}