Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android java.net.ConnectException:连接被拒绝:连接_Android_Sockets_Networking_Tcp - Fatal编程技术网

Android java.net.ConnectException:连接被拒绝:连接

Android java.net.ConnectException:连接被拒绝:连接,android,sockets,networking,tcp,Android,Sockets,Networking,Tcp,当我试图从pc“客户端”向手机“服务器”发送一条简单的“hello world”消息时,我的问题是 我尝试了所有可能的解决方案,比如:先启动手机上的服务器应用程序,然后启动客户端,但没有成功, 我也改变了ip地址,但没用, 我关闭了防火墙也没发生什么事 服务器代码: import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; import ja

当我试图从pc“客户端”向手机“服务器”发送一条简单的“hello world”消息时,我的问题是 我尝试了所有可能的解决方案,比如:先启动手机上的服务器应用程序,然后启动客户端,但没有成功, 我也改变了ip地址,但没用, 我关闭了防火墙也没发生什么事

服务器代码:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
 
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);}
 
 
 public class Server{
 
    public  void main(String args[]) {
        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(5000);} catch (IOException e) {
            e.printStackTrace();
        }
 
        while (true) {
                // Wait for a client connection.
            Socket clientSocket = null;
            try {
                clientSocket = serverSocket.accept();
            } catch (IOException e) {
                e.printStackTrace();
            }
 
            // Create and start a thread to handle the new client
 
                    try {
                        // Get the socket's InputStream, to read bytes
                        // from the socket
                        InputStream in = clientSocket.getInputStream();
                        // wrap the InputStream in a reader so you can
                        // read a String instead of bytes
                        BufferedReader reader = new BufferedReader(
                                new InputStreamReader(in, Charset.forName("UTF-8")));
                        // Read from the socket and print line by line
                        String  line;
                        while ((line = reader.readLine()) != null) {
                            Toast.makeText(getApplicationContext(),line,Toast.LENGTH_LONG).show();
                        }
                    }
                    catch (IOException e) {
                        e.printStackTrace();
                    } finally {
                        // This finally block ensures the socket is closed.
                        // A try-with-resources block cannot be used because
                        // the socket is passed into a thread, so it isn't
                        // created and closed in the same block
                        try {
                            clientSocket.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
 
                    }
 
 
            }
        }
 
 
 }}
客户代码:

import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
 
public class ClientClass {
    public static void main(String args[]) {
        try (Socket socket = new Socket("192.168.1.3", 5000);) {
            // We'll reach this code once we've connected to the server
 
            // Write a string into the socket, and flush the buffer
            OutputStream outStream = socket.getOutputStream();
            PrintWriter writer = new PrintWriter(
                    new OutputStreamWriter(outStream, StandardCharsets.UTF_8));
            writer.println("Hello world!");
            writer.flush();
        } catch (IOException e) {
            // Exception should be handled.
            e.printStackTrace();
        }
    }
}
错误:

java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    at ClientClass.main(ClientClass.java:10)
BUILD SUCCESSFUL (total time: 2 seconds)
java.net.ConnectException:连接被拒绝:连接
位于java.net.DualStackPlainSocketImpl.connect0(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:589)
位于java.net.Socket.connect(Socket.java:538)
位于java.net.Socket。(Socket.java:434)
位于java.net.Socket。(Socket.java:211)
位于ClientClass.main(ClientClass.java:10)
生成成功(总时间:2秒)

在MainActivity类中,名为Server的内部类从不实例化,也不调用“main”方法


请看一看这个例子,以了解如何使用android设备的套接字实现服务器。

我遇到了相同的错误,我设法知道了是什么导致了这个错误。在我的例子中,您必须检查两件事:

1-路由器配置如果您使用WiFi连接,因为您必须正确转发端口。(,根据路由器类型不同)

2-如果此处的IP地址是否为您手机的正确IP地址:

Socket插座=新插座(“192.168.1.3”,5000)


()

您的服务器是否在安卓系统上运行?是的,在安卓4.3版上运行Nx所有人,问题出在服务器上,我没有给它互联网权限,现在它可以工作了。欢迎您,是的,这也是很重要的事情。