首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络超时异常

网络超时异常
EN

Stack Overflow用户
提问于 2012-05-11 18:25:59
回答 1查看 1.6K关注 0票数 1

我有一个Android应用程序,它连接到Arduino服务器,并在按下按钮时向其发送套接字,但只要我按下按钮,它就会等待一段时间,然后抛出“连接超时”。我知道Arduino很好用;我在浏览器上试过,它没问题。为什么我的应用程序不能访问它?

Android代码:

代码语言:javascript
复制
Button.OnClickListener buttonConnectOnClickListener = new Button.OnClickListener() {
    public void onClick(View v) {
        Log.i(Tag,"connecting to Server");
        try {
            Log.i(Tag,"Enters try");
            socket = new Socket("161.53.168.112", 8888);
            Log.i(Tag,"stvorio socket");
            dataOutputStream = new DataOutputStream(socket.getOutputStream());//and stream

            Log.i(Tag,"Writing 1 on socket.");
            dataOutputStream.writeBytes("1");
        }
        catch (UnknownHostException e) {
            Log.i(Tag,e.toString());
        }
        catch (IOException e) {
            Log.i(Tag,e.toString());
        }
        catch (Exception e) {
            Log.e(Tag, e.toString());

这是Arduino中使用的代码。这很简单,所以我不能理解哪里出了问题。我使用了很多日志,因为我想看看错误在哪里。我使用我的Arduino作为服务器,并在上面发布一些东西。如果我在web浏览器中输入161.53.168.112:8888,它会找到它并发送请求,但我的Android手机什么也得不到,即使使用浏览器,也没有应用程序。我无法访问我的服务器。我是不是在服务器或安卓上错过了一些权限?

代码语言:javascript
复制
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x36, 0xFF };
byte ip[] = { 161, 53, 168, 114 };
int serverPort = 8888;

#define kitchenLight = 9;

Server server(serverPort);

void setup()
{
    Serial.begin(9600);
    Ethernet.begin(mac, ip, gateway, subnet);
    pinMode(kitchenLight,OUTPUT);
    server.begin();
}

void loop()
{
    Client client = server.available();
    if(client)
    {
        while(client.connected()) {
            if(client.available()) {
                char c = client.read();
                appMessage += c;
                if (c == '\n')
                {
                    Serial.println("Message from Client: "+appMessage);

                    if(appMessage.IndexOf("kitchenLight1") != -1)
                    {
                        digitalWrite(kitchenLight,HIGH);
                    }
                }
            }
        }
    }
    client.close();
}
EN

回答 1

Stack Overflow用户

发布于 2012-05-13 04:06:44

在您的Arduino和Android之间建立连接后,您应该添加延迟,比如,一两秒(更可能是两秒钟),因为Arduino需要这段时间来准备接收命令。希望这能有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10549628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档