【问题标题】:In App Inventor Make TCP IP Client在 App Inventor 中制作 TCP IP 客户端
【发布时间】:2015-01-16 21:36:19
【问题描述】:

嗨,伙计,我是 Android 设备编程的新手,我有 python、java、C#、C、C++、PHP、Bash 和 Visual Basic 经验,但我是这个块编程的新手,我没有做太多使用表格。我正在尝试制作一个将数据发布到外部 IP 的应用程序。我已经成功地编写了一个服务器和一个基于 Windows 的客户端,单击我的 Windows 客户端中的按钮将数据发布到 ip 192.168.1.9 端口 9999。这只是在测试阶段以远程控制一堆 beaglebone gpio。到目前为止,我在 windows 方面取得了巨大的成功。然而,在 Android 应用程序发明者中,我创建了一系列按钮和选项卡,不同的按钮发布文本或发布和投票以获取响应。我遇到的问题是我可以直接将 Web 连接器连接到 192.168.1.9 但是当我添加端口 9999 时它告诉我地址​​不正确。我使用的方法是

when Screen1.initialize
do set Web1.Url to "http://192.168.1.9:9999"

when Button1.Click
do call Web1.PostText
             text > 0

同样,如果我只输入 beaglebone 的 IP,当我单击 button1 时,我会看到它的以太网端口发疯了。当我添加端口时它什么都不做。当然,我的服务器在 9999 上运行,因为端口 80 是为互联网保留的。有什么建议吗?

【问题讨论】:

标签: android port tcpclient beagleboneblack app-inventor


【解决方案1】:

我想建议您分两步解决。

第 1 步:

问题>>开发一个能够通过 TCP-IP 通信的安卓应用程序。

解决方案>> 希望大家熟悉MIT-APP Inventor-2。将一个名为 ClientSocket extension V0.4.3 的扩展导入到应用程序可用here。感谢扩展的开发者。

第 2 步:

问题>>服务器响应客户端请求。

解决方案>>我写了一段Python代码。

import socket               # Import socket module
s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 9000                 # Reserve a port for your service.
s.bind((host, port))        # Bind to the port
print (host)
s.listen(5)
while True:
   c, addr = s.accept()     # Establish connection with client.
   data=(str(c.recv(1024)))
   print data
   conn.commit()
   c.close()  
   cur.close()

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-09-19
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多