Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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
Java 简单Android TCP客户端超时_Java_Android_Tcp - Fatal编程技术网

Java 简单Android TCP客户端超时

Java 简单Android TCP客户端超时,java,android,tcp,Java,Android,Tcp,您好:我正在编写一个简单的android TCP客户端,用于Inventek嵌入式TCP服务器(带有DHCP)。此客户端发送短消息多次,然后停止 我能够找到并获得从服务器网络分配的DHCP地址(服务器调试显示了这一点)。嵌入式Inventek服务器与“TCP Telnet终端”应用程序配合使用 注意,我的Android手机在WiFi网络图标旁边显示一个感叹号,但显示它已连接,我认为这不是问题所在,因为我确实收到了DHCP地址 当我运行代码时,我收到以下消息。 android调试中的~~Socke

您好:我正在编写一个简单的android TCP客户端,用于Inventek嵌入式TCP服务器(带有DHCP)。此客户端发送短消息多次,然后停止

我能够找到并获得从服务器网络分配的DHCP地址(服务器调试显示了这一点)。嵌入式Inventek服务器与“TCP Telnet终端”应用程序配合使用

注意,我的Android手机在WiFi网络图标旁边显示一个感叹号,但显示它已连接,我认为这不是问题所在,因为我确实收到了DHCP地址

当我运行代码时,我收到以下消息。 android调试中的~~SocketTimeoutException。以及以下各项:

这是调试过程:

  08-16 17:07:46.614 14378-14426/? W/System.err: java.net.SocketTimeoutException: failed to connect to /192.168.10.1 (port 5024) after 1000ms
    at libcore.io.IoBridge.connectErrno(IoBridge.java:169)
    at libcore.io.IoBridge.connect(IoBridge.java:122)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456) at java.net.Socket.connect(Socket.java:882)
    at com.example.tony.escomms.ClientLoop.run(TcpClient.java:47)
    at java.lang.Thread.run(Thread.java:818)
守则:

package com.example.tony.escomms;


import android.util.Log;
import java.io.DataOutputStream;
import java.net.InetSocketAddress
import java.net.Socket;

public class TcpClient {


    private static String LOG_TAG = "TcpClient";

    public TcpClient() {

        ClientLoop cl = new ClientLoop("Hi");
    }
}

class ClientLoop implements Runnable {


    private static String LOG_TAG = "ClientLoop";
    String message;
    public ClientLoop(String message) {

        this.message = message;
        try {
            new Thread(this).start();
        } catch (Exception e) {
            Log.i(LOG_TAG, "Error: Calling Task");
            e.printStackTrace();
        }
    }

    public void run() {

        Log.i(LOG_TAG, "Connecting...");
        try {

            Socket socket = new Socket();
            if (socket == null){
                Log.i(LOG_TAG, "socket is null");
                return;
            }

            socket.connect(new InetSocketAddress("192.168.10.1", 5024), 1000);
            DataOutputStream toServer = new DataOutputStream(socket.getOutputStream());

            if (toServer == null) {
                Log.i(LOG_TAG, "data stream  is null");
                return;
            }
            for (int i = 0; i < 100; i++) {
                toServer.writeBytes(message + 'n');
                Log.i(LOG_TAG, "Sending " + message);
            }
        } catch (Exception e) {
            Log.i(LOG_TAG, "Error: Comm fault ");
            e.printStackTrace();
        }
    }
}
package com.example.tony.escomms;
导入android.util.Log;
导入java.io.DataOutputStream;
导入java.net.InetSocketAddress
导入java.net.Socket;
公共类TcpClient{
私有静态字符串LOG_TAG=“TcpClient”;
公共TcpClient(){
ClientLoop cl=新ClientLoop(“Hi”);
}
}
类ClientLoop实现Runnable{
私有静态字符串LOG_TAG=“ClientLoop”;
字符串消息;
公共ClientLoop(字符串消息){
this.message=消息;
试一试{
新线程(this.start();
}捕获(例外e){
Log.i(Log_标记,“错误:调用任务”);
e、 printStackTrace();
}
}
公开募捐{
Log.i(Log_标签,“连接…”);
试一试{
套接字=新套接字();
if(套接字==null){
Log.i(Log_标记,“套接字为空”);
返回;
}
socket.connect(新的InetSocketAddress(“192.168.10.1”,5024),1000);
DataOutputStream toServer=新的DataOutputStream(socket.getOutputStream());
if(toServer==null){
Log.i(Log_标记,“数据流为空”);
返回;
}
对于(int i=0;i<100;i++){
toServer.writeBytes(消息+'n');
Log.i(日志标签,“发送”+消息);
}
}捕获(例外e){
Log.i(Log_标签,“错误:通信故障”);
e、 printStackTrace();
}
}
}

您是否设法从计算机上使用常规telnet进行连接?这似乎只是一个连接问题,与android无关sdk@AlessandroOliveira. 是的,我可以从Linux计算机远程登录到它。