聊天软件如何判断信息是否发送成功??
我的是客户端--服务器--客户端模式
难道要:客户端1-发送信息->服务器-传送信息->客户端2-返回接收成功->服务器-返回发送成功->客户端1
难道要多写一个函数来返回发送结果??或者一般是怎么写?
[解决办法]
至少有3步:请求-服务器响应并回复-接收
有些更复杂,就是要先发送测试包看与服务器是否连接正常,然后才发送数据
客户端根据接收的命令或者未收到回复的命令,判断下一步该做什么动作
若用的是indy,indy都是主动式服务通信的,一个连接就是一个线程,服务器自动维护
它不去干涉客户端动作,就是说有请求才响应
即使退出程序,也应该把这3步做好,即告诉服务器后,得到回复后/或超时未接收到回复才退出
若有说错地方,楼下更正哈!!!!
[解决办法]
如果信息很重要,可以这么严格确认
为避免重发,可以每个信息加唯一id,得到对方收到的确认了,才不再重发此id的信息
对方收到重复id的信息,也只显示一次
[解决办法]
QQ类似不是这样的。不需要对方确认是否收到,把队列在服务器上,暂存就可以了
[解决办法]
还是服务器暂存比较好
[解决办法]