麻烦 运行 本地主机上的 Java 应用程序
Trouble running a Java application on localhost
编辑:端口 135 似乎可以工作。排序。它似乎没有拒绝连接,它允许我在控制台中写东西,尽管当我更改线路时没有任何反应。我会尝试更多的东西
我正在尝试 运行 这个:
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "localhost";
for (int i = 1; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , i);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
但是输出总是Connection Refused。这是输出的一部分:
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)
有什么办法可以解决这个问题吗?我的远程 java 应用程序的调试配置如下所示:
http://i.stack.imgur.com/Vbm0l.png
我安装了 WAMP 服务器,也许我应该使用它?我不知道。
使用您的本地 IP 地址,而不是使用 "local"
使用 "cmd> ipconfig" 找到你的 localhost 的 ip 地址,然后像下面这样添加它:
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "192.168.0.13";
for (int i = 1; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , i);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
记住这是我的本地主机IP!你可以是别的。
您的本地主机中没有监听服务器套接字。您需要 运行 一个服务器套接字来侦听将由客户端连接的端口。例如:
Server Socket:
+++++++++++++++++++++++++++++++++++++++++++
enter code here
package com.jdbc.test.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
Socket socket=null;
BufferedReader br=null;
PrintWriter pw=null;
try {
ServerSocket server=new ServerSocket(3081);
while(true){
socket=server.accept();
System.out.println("server:"+socket.getRemoteSocketAddress());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pw.close();
br.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
Cleint Socket:
`enter code here`
+++++++++++++++++++++++++++++++++++++++++++
package com.jdbc.test;
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "localhost";
//for (int i = 10000; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , 3081);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
如果你不知道,请开始阅读这篇文章 Socket Tutorial。
我建议您编写自己的服务器套接字以侦听来自客户端代码(类似于您编写的代码)的连接。
使用高端口号,超过 5000 以避免保留端口和其他可能被您的计算机程序使用。
编辑:端口 135 似乎可以工作。排序。它似乎没有拒绝连接,它允许我在控制台中写东西,尽管当我更改线路时没有任何反应。我会尝试更多的东西
我正在尝试 运行 这个:
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "localhost";
for (int i = 1; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , i);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
但是输出总是Connection Refused。这是输出的一部分:
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)
有什么办法可以解决这个问题吗?我的远程 java 应用程序的调试配置如下所示:
http://i.stack.imgur.com/Vbm0l.png
我安装了 WAMP 服务器,也许我应该使用它?我不知道。
使用您的本地 IP 地址,而不是使用 "local" 使用 "cmd> ipconfig" 找到你的 localhost 的 ip 地址,然后像下面这样添加它:
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "192.168.0.13";
for (int i = 1; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , i);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
记住这是我的本地主机IP!你可以是别的。
您的本地主机中没有监听服务器套接字。您需要 运行 一个服务器套接字来侦听将由客户端连接的端口。例如:
Server Socket:
+++++++++++++++++++++++++++++++++++++++++++
enter code here
package com.jdbc.test.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
Socket socket=null;
BufferedReader br=null;
PrintWriter pw=null;
try {
ServerSocket server=new ServerSocket(3081);
while(true){
socket=server.accept();
System.out.println("server:"+socket.getRemoteSocketAddress());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pw.close();
br.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
Cleint Socket:
`enter code here`
+++++++++++++++++++++++++++++++++++++++++++
package com.jdbc.test;
import java.net.*;
import java.io.*;
public class MainProgram {
private static String host;
public static void main(String[] args)
{
host = "localhost";
//for (int i = 10000; i < 10001 ; i++)
{
try {
Socket socket = new Socket(host , 3081);
}catch (UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
+++++++++++++++++++++++++++++++++++++++++++
如果你不知道,请开始阅读这篇文章 Socket Tutorial。
我建议您编写自己的服务器套接字以侦听来自客户端代码(类似于您编写的代码)的连接。 使用高端口号,超过 5000 以避免保留端口和其他可能被您的计算机程序使用。