2
Это мой код для Socket программирования ...JAVA Разъем Programing бесконечный цикл
import java.io.*;
import java.net.*;
public class EchoClient
{
public static void main(String[] args)
{
try
{
Socket s = new Socket("127.0.0.1",9999);
BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter w = new PrintWriter(s.getOutputStream(),true);
BufferedReader con = new BufferedReader(new InputStreamReader(System.in));
String line;
do
{
line = r.readLine();
if (line != null)
{ System.out.println(line); }
line = con.readLine();
w.println(line);
}
while(!line.trim().equals("bye"));
}
catch(Exception err)
{ System.err.println(err); }
}
}
Код для сервера:
import java.io.*;
import java.net.*;
public class EchoServer
{
public EchoServer(int portnum)
{
try
{ server = new ServerSocket(portnum); }
catch(Exception err)
{ System.out.println(err); }
}
public void serve()
{
try
{
while(true)
{
Socket client;
client = server.accept();
BufferedReader r;
r = new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter w = new PrintWriter(client.getOutputStream(),true);
w.println("Welcome to Java EchoServer. Type 'bye' to close.");
String line;
do
{
line = r.readLine();
if (line != null)
{ w.println("Got: " + line); }
}
while(!line.trim().equals("bye"));
client.close();
}
}
catch(Exception err)
{ System.err.println(err); }
}
public static void main(String[] args)
{
EchoServer s = new EchoServer(9999);
s.serve();
}
private ServerSocket server;
}
Программа продолжает принимать ввод в бесконечном цикле и не дает никакого ответа даже когда я печатаю «bye». Я думаю, что основная проблема заключается в Server.accept(), который, похоже, не работает. Что может быть неправильным?
'127.0.0.1' является' localhost'. Вы уверены, что в порту 999 работает сервер? –
Этот вопрос не соответствует теме, потому что речь идет о базовых сетевых отношениях. – Ingo
Вы уверены, что ServerSocket serverSocket = new ServerSocket (9999); работает в localhost. – Prabhakaran