在App Inventor中创建TCP IP客户端

时间:2015-01-16 21:36:19

标签: android port tcpclient beagleboneblack app-inventor

嗨Guy我是Android设备编程的新手我有python,java,C#,C,C ++,PHP,Bash和Visual Basic Experience但我是这个块编程的新手,我做的还不多使用表格。我正在尝试制作一个将数据发布到外部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是为互联网保留的。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我想建议你一个两步解决方案。

第1步:

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

解决方案>>我希望你熟悉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()

希望这会有所帮助。