java - 使用套接字从服务器请求文件

标签 java android python sockets

我正在创建一个程序,其中android设备从Web服务器请求文件(运行python)。服务器可以通过套接字接收请求的文件的路径而没有问题,但是我不知道如何使我的android设备等待回应。

这是android代码(作为客户端从Web服务器请求文件的代码):

 try {

        Socket socket = null;
        socket = new Socket("192.168.1.9", 4000);

        DataInputStream input = new DataInputStream(socket.getInputStream());
        DataOutputStream output = new DataOutputStream(socket.getOutputStream());


        String str = getURL();
        output.writeBytes(str);

        output.close();
        input.close();
        socket.close();

        {
        }
    } catch (IOException e) {
    }


    Log.d("communicationService", "URL transferred with success");

和在Web服务器上运行的python脚本(它可以接收文件路径,但是我在发送文件时遇到问题)
import socket
import sys

HOST, PORT = '192.168.1.9', 4000
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serverSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serverSocket.bind((HOST,PORT))
serverSocket.listen(10)

print 'Server is on and listening to %s ... ' % PORT

while True:

clientSocket, clientAddress = serverSocket.accept()
print 'A client was connected.....'
incomingURL = clientSocket.recv(1024)
print incomingURL

clientSocket.close()

任何建议和提示将非常有帮助...

最佳答案

我想您应该可以摆脱SimpleHTTPServer

如果您需要使用完善的Web服务来发烧友,WSGI非常受欢迎。

到目前为止,在客户端Requests库是我发现用python发出http请求的最简单方法。 (只是必须插入那个,因为那样好)

关于java - 使用套接字从服务器请求文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34098736/

相关文章:

Java:大规模并发方法调用对性能的影响

android - 如何从 TabWidget 中删除选定的选项卡指示器?

python - p = {} 和 p : dict= {} in python? 有什么区别

android - 如何解决我的应用程序中的图像适配器错误?

Android加载本地html文件并在网络浏览器中显示

python - 为多对多关系形成、创建和更新 View

python - cython编译错误 'is not a type identifier'

java - 如何迭代映射以获取 2 个键的所有值

javascript - 使用 servlet 在 Java Web 应用程序中呈现 css 和 js

java - 在 Java 应用程序的 Win 7 程序和功能中设置发布者、大小和版本的值