Java 创建新LAN套接字时连接被拒绝
我一直在尝试在局域网中的两台计算机之间建立一个非常基本的连接。我已经查看了几个代码片段并从那里开始,但事情似乎从一开始就失败了:创建套接字 我尝试过连接到我正在执行代码的计算机(使用主机名“Java 创建新LAN套接字时连接被拒绝,java,sockets,Java,Sockets,我一直在尝试在局域网中的两台计算机之间建立一个非常基本的连接。我已经查看了几个代码片段并从那里开始,但事情似乎从一开始就失败了:创建套接字 我尝试过连接到我正在执行代码的计算机(使用主机名“Jeroen DESKTOP”和“Localhost”以及Localhost IP“127.0.0.1”),以及连接到我的笔记本电脑(使用“Jeroen laptop”)。我已经尝试了端口6666和7598,并在防火墙设置中打开了与它的所有TCP连接 我使用的代码非常基本: socket = new Sock
Jeroen DESKTOP
”和“Localhost
”以及Localhost IP“127.0.0.1
”),以及连接到我的笔记本电脑(使用“Jeroen laptop
”)。我已经尝试了端口6666
和7598
,并在防火墙设置中打开了与它的所有TCP连接
我使用的代码非常基本:
socket = new Socket("Jeroen-LAPTOP", 6666);
System.out.println(socket.getPort());
错误为:
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at domain.Client.<init>(Client.java:13)
java.net.ConnectException:连接被拒绝:连接
位于java.net.DualStackPlainSocketImpl.connect0(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(未知源)
位于java.net.AbstractPlainSocketImpl.doConnect(未知源)
位于java.net.AbstractPlainSocketImpl.connectToAddress(未知源)
位于java.net.AbstractPlainSocketImpl.connect(未知源)
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket。(未知源)
位于java.net.Socket。(未知源)
位于domain.Client.(Client.java:13)
而不知道自己在做什么-
假设您正在机器a上打开一个套接字并尝试使用机器B连接到它,那么Java中的典型场景是
机器A:
ServerSocket server = new ServerSocket(4444);
Socket connection = server.Accept();
机器B:
Socket sock = new Socket(MACHINE-A-IP, 4444);
这需要异常处理等来允许它工作。你可以在这里看到例子;
关于您的评论-是的,您可以在本地运行它们。使用
localhost
或127.0.0.1
将不起作用-这些将循环回同一台计算机。但Jeroen笔记本电脑上运行的是什么?你需要在这个端口上监听一些东西……我一直在这个概念上遇到一些问题:当我试图在桌面上创建一个套接字时,我应该在我的笔记本电脑上的eclipse中运行我的程序吗?也许有一种方法可以单独在我的桌面上实现这一点吗?还不清楚你想做什么,但你需要在每台计算机上运行一个程序——一个用于监听端口,另一个用于连接该端口。哦,好吧,这澄清了我的大部分误解。小的后续问题:我是否可以从所有这些假设中假设,如果另一侧没有已侦听的serversocket,就无法创建套接字?确实如此。你认为数据会流向哪里?谢谢,我一定会看看这些例子!