【发布时间】:2016-03-18 06:23:31
【问题描述】:
我在下面粘贴了我的整个代码,其中大部分与问题无关。我正在尝试创建一个 Java 服务器,然后使用 telnet 连接到它(在同一台 PC 上)并输出随机字符串。到目前为止,我无法克服每次 telnet 到我的 PC 时连接被拒绝的情况。由于某种原因,我在课堂上成功连接到我的大学计算机,但不在家里。
我在下面列出了代码。是否有我应该打开的端口,或者这可能是 Windows 10 的问题或其他问题?我对 Sockets 很陌生,因此我真的不知道我在说什么。
包 cm3033.lab3.ex1nonthreadedechoserver;
导入 java.io.BufferedReader;
导入 java.io.InputStreamReader;
导入 java.io.PrintWriter;
导入 java.net.ServerSocket;
导入 java.net.Socket;
公共类 MainAppEx1NonThreadedEchoServer
{
公共静态无效主要(字符串 [] 参数)
{
尝试
{
ServerSocket s = 新 ServerSocket(8189) ;
// 监听服务器套接字 s 上的连接请求
//传入的是连接套接字
为了(;;)
{
套接字传入 = s.accept() ;
// 为双向传输设置流
// 跨连接套接字
BufferedReader in = 新的 BufferedReader
(新 InputStreamReader(incoming.getInputStream())) ;
PrintWriter out = 新的 PrintWriter
(incoming.getOutputStream(), true /* 自动刷新 */) ;
out.println("你已连接到" +
传入.getLocalAddress().getHostName() +
“在端口上”+incoming.getLocalPort()
) ;
out.println("键入 BYE 退出") ;
布尔完成 = 假;
而(!完成)
{
字符串 str = in.readLine() ;
如果(str == null)
完成=真;
别的
{
out.println("ECHO:" + str);
if (str.trim().equals("BYE"))
完成=真;
}
}
传入.close() ;
}
}
捕获(异常 e)
{
System.out.println(e) ;
}
}
}
下图是我尝试 telnet 时收到的消息。
【问题讨论】:
-
您收到“连接被拒绝”或“连接超时”。不是“连接被拒绝”。请勿在此处发布文字图片。发布文本。