【发布时间】:2012-02-10 07:06:25
【问题描述】:
我现在正在使用异步套接字。我有一个回调函数'onDataReceived',每当我收到任何数据时都会触发它。
首先我一次只得到一个字符,所以我将 socketPacket 数据缓冲区更改为一个大数组。现在,每当我收到数据时,我都会一次获得所有数据,但是当我尝试发送更大的文件时,一旦超过数组大小,它就无法工作。
我的问题是这样的。我有一个多线程套接字服务器。我如何确定何时收到所有数据?例如我需要发送一个图像,我将图像编码为base64并构造一个命令“BASE64IMAGE”,然后服务器读取字符串直到它到达END_OF_DATA?有更好的方法吗?谢谢!
【问题讨论】:
-
您可以使用 HTTP 协议发送文件,这样您就可以使用 http 标头来表示有关正在发送的数据的详细信息 ..基于 http 的套接字类也可作为库使用