У меня есть простой tcp-сервер java, который просто получает запросы от TCP-клиента, довольно простые вещи:
private static void startserver()
{
String Request;
try
{
ServerSocket ss=new ServerSocket(1800);
Socket s=ss.accept();
System.out.println("Client Accepted");
BufferedReader br=new BufferedReader(new
InputStreamReader(s.getInputStream()));
System.out.println(br.readLine());
//Request = br.readLine();
PrintWriter wr=new PrintWriter(new
OutputStreamWriter(s.getOutputStream()),true);
wr.println("This is sent to client");
}catch(Exception e){System.out.println(e);}
}
Теперь клиенты отправляют сообщение на сервер, что, как я понимаю, происходит здесь:
BufferedReader br=new BufferedReader(new
InputStreamReader(s.getInputStream()));
System.out.println(br.readLine());
Теперь это работает нормально, но я хочу установить строку «Запрос» как сообщение, полученное от клиента, поэтому я сделал:
Request = br.readLine();
Но это ломаетсясервер, в основном никакое сообщение не получено от клиента или даже отправлено клиенту.TCP-клиент (в C #) выглядит следующим образом:
static void Main(string[] args)
{
try
{
TcpClient tc = new TcpClient("172.16.0.104", 1800);// in the place of server, enter
Console.WriteLine("Server invoked");
NetworkStream ns = tc.GetStream();
StreamWriter sw = new StreamWriter(ns);
sw.WriteLine("This message is sent to the server");
sw.Flush();
StreamReader sr = new StreamReader(ns);
Console.WriteLine(sr.ReadLine());
}
catch (Exception e) { Console.WriteLine(e); }
Console.ReadKey();
}