我正在开发一个需要每分钟与服务器通信的应用程序,让服务器知道客户端的位置。服务器在java。
我是在UDP中完成的,但是我必须做很多检查,例如,如果我发送我的"个人资料说明"服务器必须向我发送一个数据包"好的,我收到了您的新个人资料说明"。
我必须发送图片,并且使用UDP我需要发送大量数据包并且服务器必须向我发送收到的确认信息,我也要告诉他我发送的最后一个数据包是最后一个所以它可以将我的照片设为个人资料照片。
我认为UDP可能没用,我需要尽可能快地发送信息给服务器我的位置,但我还需要正确接收名称/描述/图片等信息。
提前致谢
答案 0 :(得分:1)
UDP与TCP的不同之处在于您不希望得到确认的确认响应。 例如,UDP最适合视频会议,因为如果每秒钟向服务器发送25个图像帧,并且在途中丢失4-5个图像帧 - 没有理由再次发送丢失的帧,因此没有理由获得每个帧的确认确认响应。 但是,UDP不是发送个人资料图片的最佳选择,因为如果服务器没有收到图片 - 必须一遍又一遍地发送,直到我们从服务器收到确认的确认响应,然后说出来得到了照片。
您写道:
需要每分钟与服务器通信的应用程序,让服务器知道客户端的位置
UDP在这里可能是一个很好的做法,因为如果一些网络包丢失(因为其他网络包将在稍后发送),你可能并不在意。
但是,您还写道:
例如,如果我发送我的"个人资料说明"服务器必须向我发送一个数据包"好的,我收到了您的新个人资料说明"。
和
我必须发送图片,并且用UDP我需要发送大量的数据包和服务器已经发送给我的确认收到了
对于这2个作业,我建议使用TCP - 因为您需要确保再次发送丢失的包。更好的是,您可以学习更多关于REST API的信息,看看它是否适合您。 用于在REST API中上传图片的教程的链接(Google中的众多图片之一):http://examples.javacodegeeks.com/enterprise-java/rest/jersey/jersey-file-upload-example/
总之,我建议您将3个作业分为2组:UDP(每分钟的位置)和TCP / REST API(配置文件描述和照片上传)。如果您只想选择一个,那么请选择TCP / REST API。
希望它有所帮助!