【发布时间】:2015-02-08 11:34:59
【问题描述】:
我还是个新手,我相信这个问题已经被问过很多次了。 我在 java 中创建了一个客户端服务器工具,当我在同一台机器上运行它时它运行得非常好。 但是当我尝试在另一台机器上但在同一个网络上运行客户端时,它不会连接到服务器。 所以有人可以告诉我我可以尝试/做些什么来纠正它。
谢谢。
来自客户端的代码 sn-p:
serverIP = String.valueOf(InetAddress.getLocalHost().getHostAddress());
int Port = 5000;
.
.
.
try
{
sock = new Socket(serverIP, Port);
InputStreamReader streamreader = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(streamreader);
writer = new PrintWriter(sock.getOutputStream());
writer.println(username +":"+ encPassword+":has connected"+":Connect"); // Displays to everyone that user connected.
writer.flush(); // flushes the buffer
isConnected = true; // Used to see if the client is connected.
}
catch (Exception ex)
{
chatTextArea.append("Cannot Connect! Try Again. \n");
System.err.println(ex.getMessage());
usernameField.setEditable(true);
pass.setEditable(true);
}
ListenThread();
.
.
.
public void ListenThread()
{
Thread IncomingReader = new Thread(new IncomingReader());
IncomingReader.start();
}
来自服务器的代码 sn-p:
public void run()
{
clientOutputStreams = new ArrayList();
onlineUsers = new ArrayList();
try
{
ServerSocket serverSock = new ServerSocket(5000);
while (true)
{
// set up the server writer function and then begin at the same
// the listener using the Runnable and Thread
Socket clientSock = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSock.getOutputStream());
clientOutputStreams.add(writer);
// use a Runnable to start a 'second main method that will run
// the listener
Thread listener = new Thread(new ClientHandler(clientSock, writer));
listener.start();
outputPane.append("Got a connection. \n");
} // end while
} // end try
catch (Exception ex)
{
outputPane.append("Error making a connection. \n");
} // end catch
}
【问题讨论】:
-
'它没有连接到服务器'通常意味着你应该得到一个异常,它应该让你大致了解它为什么无法连接。
-
连接被拒绝。