Java 使用telnet和服务器套接字连接到您自己的电脑。每次都拒绝连接
我已经在下面粘贴了我的全部代码,其中大部分与问题无关。我正在尝试创建一个Java服务器,然后使用telnet连接到它(在同一台PC上),并输出随机字符串。到目前为止,我无法克服每次我通过telnet连接到我的电脑时都会被拒绝的局面。出于某种原因,我成功地在课堂上连接到了我的大学电脑,但不在家 我在下面列出了代码。是否有我应该打开的端口,或者可能是Windows 10或其他系统的问题?我对Sockets很陌生,所以我不知道自己在说什么Java 使用telnet和服务器套接字连接到您自己的电脑。每次都拒绝连接,java,sockets,telnet,Java,Sockets,Telnet,我已经在下面粘贴了我的全部代码,其中大部分与问题无关。我正在尝试创建一个Java服务器,然后使用telnet连接到它(在同一台PC上),并输出随机字符串。到目前为止,我无法克服每次我通过telnet连接到我的电脑时都会被拒绝的局面。出于某种原因,我成功地在课堂上连接到了我的大学电脑,但不在家 我在下面列出了代码。是否有我应该打开的端口,或者可能是Windows 10或其他系统的问题?我对Sockets很陌生,所以我不知道自己在说什么 package cm3033.lab3.ex1nonthre
package cm3033.lab3.ex1nonthreadedechoserver;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MainAppEx1NonThreadedEchoServer
{
public static void main(String[] args)
{
try
{
ServerSocket s = new ServerSocket(8189) ;
// listen for a connection request on server socket s
// incoming is the connection socket
for(;;)
{
Socket incoming = s.accept() ;
// set up streams for bidirectional transfer
// across connection socket
BufferedReader in = new BufferedReader
(new InputStreamReader(incoming.getInputStream())) ;
PrintWriter out = new PrintWriter
(incoming.getOutputStream(), true /* auto flush */) ;
out.println("You are connected to " +
incoming.getLocalAddress().getHostName() +
" on port " + incoming.getLocalPort()
) ;
out.println("Type BYE to quit") ;
boolean done = false ;
while(!done)
{
String str = in.readLine() ;
if (str == null)
done = true ;
else
{
out.println("ECHO: " + str) ;
if (str.trim().equals("BYE"))
done = true ;
}
}
incoming.close() ;
}
}
catch(Exception e)
{
System.out.println(e) ;
}
}
}</code>
包cm3033.lab3.ex1nonthreadedechoserver;
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.io.PrintWriter;
导入java.net.ServerSocket;
导入java.net.Socket;
公共类MainAppEx1NonThreadedEchoServer
{
公共静态void main(字符串[]args)
{
尝试
{
ServerSocket s=新的ServerSocket(8189);
//侦听服务器套接字上的连接请求
//传入的是连接套接字
对于(;;)
{
套接字传入=s.accept();
//设置双向传输的流
//交叉连接插座
BufferedReader in=新的BufferedReader
(新的InputStreamReader(incoming.getInputStream());
PrintWriter out=新的PrintWriter
(incoming.getOutputStream(),true/*自动刷新*/);
out.println(“您已连接到”+
传入的.getLocalAddress().getHostName()+
“在端口上”+传入的.getLocalPort()
) ;
out.println(“键入BYE以退出”);
布尔完成=假;
而(!完成)
{
字符串str=in.readLine();
如果(str==null)
完成=正确;
其他的
{
out.println(“ECHO:+str”);
如果(str.trim()等于(“BYE”))
完成=正确;
}
}
incoming.close();
}
}
捕获(例外e)
{
系统输出打印ln(e);
}
}
}
下图是我尝试远程登录时收到的信息
您尝试在不提供端口号的情况下执行telnet,因此默认为23。但是,您已经使用端口8189设置了服务器
用telnet s-PC 8189来代替。哦,天哪,这太简单了,但我太笨了。。。这很有效。非常感谢:)您收到“连接被拒绝”或“连接超时”。不是“拒绝连接”。不要在这里张贴文字图片。张贴文本。