绑定到远程IP地址时引发IOException的Java ServerSocket
因此,我正在尝试绑定并侦听我的学校服务器上的端口,以便在我的网络课程中完成作业。我遇到的是,当我在java中创建ServerSocket时,我不断地得到一个IOException,即使当我尝试绑定到上层端口时也是如此 我最初尝试绑定到端口1088(或多或少是出于希望),但如果不成功,我将尝试绑定到1024以上的随机端口(服务器上保留任何较低的端口) 以下是我得到的:绑定到远程IP地址时引发IOException的Java ServerSocket,java,serversocket,Java,Serversocket,因此,我正在尝试绑定并侦听我的学校服务器上的端口,以便在我的网络课程中完成作业。我遇到的是,当我在java中创建ServerSocket时,我不断地得到一个IOException,即使当我尝试绑定到上层端口时也是如此 我最初尝试绑定到端口1088(或多或少是出于希望),但如果不成功,我将尝试绑定到1024以上的随机端口(服务器上保留任何较低的端口) 以下是我得到的: import java.io.IOException; import java.net.InetAddress; import
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.UnknownHostException;
import java.util.Random;
public class main
{
/**
* @param args
*/
public static void main(String[] args)
{
Random r = new Random();
boolean connected = true;
ServerSocket serverSocket = null;
int welcomePortNum = new Integer(args[0]);
if(welcomePortNum >= 65536)
{
System.out.println("Invalid welcome port number, terminating execution.");
System.exit(0);
}
do
{
connected = true;
System.out.println(welcomePortNum);
try
{
serverSocket = new ServerSocket(welcomePortNum, 5, InetAddress.getByName("loki.ist.unomaha.edu"));
} catch(UnknownHostException e)
{
System.err.println("Could not connect to 'loki.ist.unomaha.edu'.");
connected = false;
//System.exit(1);
}catch(IOException e)
{
System.err.println("Could not get the I/O for the connection to loki.ist.unomaha.edu.");
connected = false;
//System.exit(1);
}
if(connected == false)
welcomePortNum = r.nextInt(64512) + 1024;
System.out.println(connected);
}
while(connected == false);
// TODO Auto-generated method stub
}
}
有什么想法吗?Java
ServerSockets
不“连接到远程主机”。它们可以绑定到本地IP地址,这就是您使用的构造函数的用途
编辑
对作业的评论
我们的教授告诉我们需要使用服务器套接字从远程主机读取数据。您应该使用
Socket
(带有远程服务器的主机和端口)连接到远程服务器,并从中读取数据,而不是使用分配的链接。