将图像发送到服务器:http POST与自定义tcp协议

时间:2012-03-21 12:32:39

标签: python sockets wsgi

我正在研究如何构建一个python应用程序来进行图像处理。客户端(不是Web浏览器)将图像和一些文本数据发送到服务器,服务器的响应基于接收到的图像。

一种方法是使用Web服务器+ WSGI模块并让客户端发出HTTP POST请求(使用multipart / form-data)。然后,http服务器“计算出”上传的图像和程序可以使用的其他数据。

另一种方法是创建仅发送所需数据并在应用程序内处理的协议。应用程序将执行所有操作(侦听端口等)。

其中一种是最好的“最佳”方式(如果是,哪一种?),还是更偏向于偏好(还是有另一种方式更好)?

2 个答案:

答案 0 :(得分:0)

我相信这更符合您的需求,图像的大小以及您对网络编程的一般知识。

就简单性而言,使用WSGI将图像发布到Web服务器非常简单,您不必担心处理连接,套接字,由于繁忙的网络端口导致的错误处理等。

支持这种方法的另一个论点是,如果您已经在网络服务器上工作,例如通过包含浏览器客户端,您可以轻松地重复使用此“功能”。它可能不是你现在的需求之一,但门是敞开的。

这是我的选择。

另外,在Python中你有很多可供选择的Web框架,从Django这个可能是一个非常难以满足你的需求的东西,到更简单的东西,比如http://flask.pocoo.org/可能只适合您的需求并且设置起来非常简单。

答案 1 :(得分:0)

在我看来,HTTP是发送文件或大数据的理想协议,它非常常见,易于适应任何情况。如果您使用自行创建的协议,您可能会发现在获得其他客户需求时很难转换,例如Web API。

也许关于HTTP缺乏即时性和敏捷性的讨论让你对选择HTTP犹豫不决,但这主要是关于即时消息和服务器推送的,有更好的协议。但是在稳定性和灵活性方面,HTTP始终是一个不错的选择。