java.net.ConnectException: 连接被拒绝 TCP
java.net.ConnectException: Connection refused TCP
Objective - I want to send the entered text in the java (PC) project to the android app which displays this text.The PC is connected to wifi
hotspot created by the android mobile.
PC/clientjava项目代码:
public class EcsDemo {
public static void main(String[] args) {
System.out.println("Enter SSID to connect :");
Scanner in = new Scanner(System.in);
String ssid = in.nextLine();
System.out.println("You entered ssid " + ssid);
System.out.println("Connecting to ssid ..");
DosCommand.runCmd(DosCommand.connectToProfile(ssid));
// netsh wlan connect name=
System.out.println("initializing tcp client ..");
try {
TCPClient.startTCpClient();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class TCPClient {
public static void startTCpClient() throws UnknownHostException, IOException{
String FromServer;
String ToServer;
Socket clientSocket = new Socket("localhost", 5000);
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(
System.in));
PrintWriter outToServer = new PrintWriter(
clientSocket.getOutputStream(), true);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
while (true) {
FromServer = inFromServer.readLine();
if (FromServer.equals("q") || FromServer.equals("Q")) {
clientSocket.close();
break;
} else {
System.out.println("RECIEVED:" + FromServer);
System.out.println("SEND(Type Q or q to Quit):");
ToServer = inFromUser.readLine();
if (ToServer.equals("Q") || ToServer.equals("q")) {
outToServer.println(ToServer);
clientSocket.close();
break;
} else {
outToServer.println(ToServer);
}
}
}
}
}
Android app/Server 代码:
public class MainActivity extends Activity {
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "starting server");
new ServerAsyncTask().execute();
}
}
public class ServerAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
try {
TCPServer.startTCPServer();// initTCPserver();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
public static void startTCPServer() throws IOException{
String fromclient;
String toclient;
ServerSocket Server = new ServerSocket(5000);
System.out.println("TCPServer Waiting for client on port 5000");
Log.i("startTCPServer","TCPServer Waiting for client on port 5000");
while (true) {
Socket connected = Server.accept();
System.out.println(" THE CLIENT" + " " + connected.getInetAddress()
+ ":" + connected.getPort() + " IS CONNECTED ");
Log.i("startTCPServer"," THE CLIENT" + " " + connected.getInetAddress()
+ ":" + connected.getPort() + " IS CONNECTED ");
BufferedReader inFromUser = new BufferedReader(
new InputStreamReader(System.in));
BufferedReader inFromClient = new BufferedReader(
new InputStreamReader(connected.getInputStream()));
PrintWriter outToClient = new PrintWriter(
connected.getOutputStream(), true);
while (true) {
// System.out.println("SEND(Type Q or q to Quit):");
// toclient = inFromUser.readLine();
//
// if (toclient.equals("q") || toclient.equals("Q")) {
// outToClient.println(toclient);
// connected.close();
// break;
// } else {
// outToClient.println(toclient);
// }
fromclient = inFromClient.readLine();
if (fromclient.equals("q") || fromclient.equals("Q")) {
connected.close();
break;
} else {
System.out.println("RECIEVED:" + fromclient);
}
}
}
}
}
在 运行 启动 android 应用程序之后,然后当我 运行 java 项目时,我得到以下异常:
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 com.expressecs.javademo.TCPClient.startTCpClient(TCPClient.java:15)
at com.expressecs.javademo.EcsDemo.main(EcsDemo.java:41)
我参考了以下链接:
java.net.ConnectException: Connection refused
谢谢!
您尝试连接的 IP:port 没有任何监听。
您的服务器没有启动,或者正在侦听不同的端口,或者绑定到 127.0.0.1 而不是 0.0.0.0 或 public IP 地址。
Objective - I want to send the entered text in the java (PC) project to the android app which displays this text.The PC is connected to wifi hotspot created by the android mobile.
PC/clientjava项目代码:
public class EcsDemo {
public static void main(String[] args) {
System.out.println("Enter SSID to connect :");
Scanner in = new Scanner(System.in);
String ssid = in.nextLine();
System.out.println("You entered ssid " + ssid);
System.out.println("Connecting to ssid ..");
DosCommand.runCmd(DosCommand.connectToProfile(ssid));
// netsh wlan connect name=
System.out.println("initializing tcp client ..");
try {
TCPClient.startTCpClient();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class TCPClient {
public static void startTCpClient() throws UnknownHostException, IOException{
String FromServer;
String ToServer;
Socket clientSocket = new Socket("localhost", 5000);
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(
System.in));
PrintWriter outToServer = new PrintWriter(
clientSocket.getOutputStream(), true);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
while (true) {
FromServer = inFromServer.readLine();
if (FromServer.equals("q") || FromServer.equals("Q")) {
clientSocket.close();
break;
} else {
System.out.println("RECIEVED:" + FromServer);
System.out.println("SEND(Type Q or q to Quit):");
ToServer = inFromUser.readLine();
if (ToServer.equals("Q") || ToServer.equals("q")) {
outToServer.println(ToServer);
clientSocket.close();
break;
} else {
outToServer.println(ToServer);
}
}
}
}
}
Android app/Server 代码:
public class MainActivity extends Activity {
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "starting server");
new ServerAsyncTask().execute();
}
}
public class ServerAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
try {
TCPServer.startTCPServer();// initTCPserver();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
public static void startTCPServer() throws IOException{
String fromclient;
String toclient;
ServerSocket Server = new ServerSocket(5000);
System.out.println("TCPServer Waiting for client on port 5000");
Log.i("startTCPServer","TCPServer Waiting for client on port 5000");
while (true) {
Socket connected = Server.accept();
System.out.println(" THE CLIENT" + " " + connected.getInetAddress()
+ ":" + connected.getPort() + " IS CONNECTED ");
Log.i("startTCPServer"," THE CLIENT" + " " + connected.getInetAddress()
+ ":" + connected.getPort() + " IS CONNECTED ");
BufferedReader inFromUser = new BufferedReader(
new InputStreamReader(System.in));
BufferedReader inFromClient = new BufferedReader(
new InputStreamReader(connected.getInputStream()));
PrintWriter outToClient = new PrintWriter(
connected.getOutputStream(), true);
while (true) {
// System.out.println("SEND(Type Q or q to Quit):");
// toclient = inFromUser.readLine();
//
// if (toclient.equals("q") || toclient.equals("Q")) {
// outToClient.println(toclient);
// connected.close();
// break;
// } else {
// outToClient.println(toclient);
// }
fromclient = inFromClient.readLine();
if (fromclient.equals("q") || fromclient.equals("Q")) {
connected.close();
break;
} else {
System.out.println("RECIEVED:" + fromclient);
}
}
}
}
}
在 运行 启动 android 应用程序之后,然后当我 运行 java 项目时,我得到以下异常:
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 com.expressecs.javademo.TCPClient.startTCpClient(TCPClient.java:15)
at com.expressecs.javademo.EcsDemo.main(EcsDemo.java:41)
我参考了以下链接:
java.net.ConnectException: Connection refused
谢谢!
您尝试连接的 IP:port 没有任何监听。
您的服务器没有启动,或者正在侦听不同的端口,或者绑定到 127.0.0.1 而不是 0.0.0.0 或 public IP 地址。