Android 发送和接收服务器的最佳方式 from/to

Android best way to send and receive from/to a server

我正在开发一个应用程序,需要每分钟与服务器通信,让服务器知道客户端的位置。服务器位于 java.

我是在 UDP 中完成的,但是我必须做很多检查,例如,如果我发送我的 "profile description",服务器必须向我发送一个带有 "Ok, I received your new profile description" 的数据包。

我要发图片,用UDP我要发很多包,服务器要发给我确认收到,还要告诉他我发的最后一个包是最后一个等等它可以将我的照片设置为头像。

我认为 UDP 可能没用,我需要尽可能快地发送信息以向服务器提供我的位置,但我还需要正确接收 Name/Description/Picture 等信息。

提前致谢

UDP 与 TCP 的不同之处在于您不期望得到确认的确认响应。 例如,UDP 最适合视频会议,因为如果每秒向服务器发送 25 个图片帧,并且在途中丢失了 4-5 个 - 没有理由再次发送丢失的帧,因此没有理由获得每个帧的确认确认响应。 然而,UDP 并不是发送个人资料图片的最佳选择,因为如果服务器没有收到图片 - 它必须一遍又一遍地发送,直到我们从服务器收到一个确认的确认响应,说它收到了图片.

您写道:

an App which need to communicate with server every minute, and let the server know the position of the client

UDP 在这里可能是一种很好的做法,因为也许您并不真正关心是否丢失了一些网络包(因为稍后会发送其他包)。

不过,您还写道:

for example if I send my "profile description" the server has to send me a packet with "Ok, I received your new profile description".

I have to send pictures, and with UDP I need to send a lot of packets and server has to send me the confirmation of received

对于这 2 个作业,我建议使用 TCP - 因为您需要确保再次发送丢失的包。更好的是,您可以进一步研究 REST APIs,看看它是否适合您。 link 用于在 REST API 中上传图片的教程(Google 上的许多教程之一):http://examples.javacodegeeks.com/enterprise-java/rest/jersey/jersey-file-upload-example/

作为结论,我建议您将这 3 个工作分成两组:UDP(每分钟位置)和 TCP/REST API(个人资料描述和照片上传)。如果您只想选择一个,请选择 TCP/REST API.

希望对您有所帮助!