安卓与电脑之间的Socket通信(sl4a)

3

我有一部安卓手机,其中运行了client.py和server.py。我的电脑IP地址设置为192.168.16.7(在网络管理器中运行Ubuntu 13.04),我的手机IP地址设置为192.168.16.9。我使用手机创建了一个WiFi热点,并将电脑连接到热点。以下是我的server.py代码:

import socket
s=socket.socket()
port=12345
s.bind(("192.168.16.7",port))
s.listen(5)
while True:
  c,addr=s.accept()
  print "got connection from ",addr
  c.send('Thankyou for connecting')
  c.close()

我的 client.py 文件内容如下:

import socket
port=12345
s=socket.socket()
s.connect(("192.168.16.7",port))
s.send("Hello world")
s.close

server.py 运行在我的电脑上,而 client.py 则在我的手机上。但是当我在手机上尝试运行 client.py 时,它告诉我网络不可达。我该怎么解决这个问题?

1个回答

2
我已经解决了问题。问题出在手机上设置的静态IP地址上。尽管我将安卓手机的静态IP地址设置为192.168.16.9,但实际并非如此。要检查这一点,请转到sl4a->view->interpreter->shell,并键入“netcfg”,然后按回车键。在出现的各种内容中,我发现与“wlan0”对应的IP地址为192.168.43.1。 因此,我将手机的静态IP设置为上述IP地址,然后将计算机的IP更改为192.168.43.8。 因此,服务器应绑定到s.bind(('192.168.43.8',port))。
客户端应连接到相同的地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接