【发布时间】:2010-07-27 00:39:23
【问题描述】:
所以我在 android 模拟器上有一个简单的套接字服务器。当我只向它发送数据时,它工作得很好。但是,如果我想将该数据回显到 python 脚本,它根本不起作用。这是有效的代码:
机器人:
try {
serverSocket = new ServerSocket(port);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
while (checkingForClients) {
try {
clientSocket = serverSocket.accept();
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
line = null;
while ((line = in.readLine()) != null) {
Log.d("ServerActivity", line);
/* THIS IS THE LINE THAT DOESN'T WORK*/
//out.println(line);
handler.post(new Runnable() {
@Override
public void run() {
if(incomingData == null){
Log.e("Socket Thingey", "Null Error");
}
//out.println(line);
incomingData.setText("Testing");
incomingData.setText(line);
}
});
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
蟒蛇:
import socket
host = 'localhost'
port = 5000
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('Hello, World!')
# data = s.recv(size) THIS LINE CAUSES PROBLEMS
s.close()
print 'Received:' , data
所以有 2 行注释。没有这些线条,它可以完美运行。但是,如果我在 python 中添加s.recv(size),它只会冻结,我假设等待接收到的数据。但问题是android代码永远不会得到发送的数据。所以我不知道该怎么办。
请记住,我是 python 和套接字的新手。
【问题讨论】:
标签: java python android sockets