我已经构建了一个iPhone应用程序,该应用程序捕获语音并使用NSOutputStream实例流式传输到服务器。流停止后,iPhone将向服务器发送文本消息“ --- end ---”,并开始在NSOutputStream上列出。
当服务器(使用C#构建)捕获到“ --- end ---”消息时,它将进行一些处理并将文本写回到客户端。客户端收到结束消息后,它将关闭NSOutputStream和NSInputStream连接。

每次,在发送“结束”消息之前,我都会使应用程序进入睡眠状态0.5秒钟。然后,我可以保证结束消息不会与其他数据混合。该系统可与模拟器以及我的网络(100Mbps)完美配合。

但是,当我将整个应用程序连接到慢速网络(1.2 Mbps)时,整个通信消失了。有时,结束消息与语音数据混合在一起,就像结束消息与从服务器发送的文本连接在一起一样。
但是,当我在服务器和客户端中将线程休眠时间更改为3秒时,错误发生率降低了。

我知道这可能是设计我的网络客户端-服务器通信协议的问题。但是我不知道如何准确地解决它。

谁能解释我,如何克服这些问题?

最佳答案

找出如何等待传输完成,而不是增加任意的睡眠时间。

关于c# - 如何使用iPhone和C#制作完美的客户端-服务器通信程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3286396/

10-11 02:44
查看更多