wp8 使用socket TCP从电脑传输大文件
我想实现从电脑向手机传输文件的功能,目前是用socket TCP协议实现,单线程异步传输。
目前有一个很大的问题,一开始写代码的时候,我为了调试方便,是在电脑和电脑之间传输文件,不管是大文件还是小文件都没什么问题。
但是把接收的部分移植到wp的工程之后,就有一个问题,小文件(1M左右的文件)还正常,但是传输大文件(300M+的视频文件)的时候,就会卡住。打断点之后发现,这个时候发送端和接收端都没有任何动作了。如果如果从一开始就在发送或者接收的位置打上断点,然后一下一下的按F5,就不会卡住。
我想请问一下,wp的文件传输和pc有什么区别,对于这个“卡住”的问题,有什么好的解决办法吗?
代码太多,我先简单写一下传输流程
发送端listen->接收端connect-〉发送端accept并向接收端发送连接成功信息
发送端发送文件基本信息-〉接收端返回接收成功信息-〉发送端发送一段数据->接收端返回接收成功信息-〉发送端发送下一段数据……发送端发送文件发送完成信息->接收端返回接收成功信息
因为wp的socket只有异步操作,所以pc端也是用的异步操作。 socket wp8 文件传输 tcp 异步
[解决办法]
首先,要确认传输过程中有没有出现 Socket 的错误,类似于 10035 或 10054 之类的。
异常操作,可能是因为发送的速度太快(特别是 LZ 提到的单步就不会出错可以验证这一点),将发送速度降低一些试试吧。例如:发送后,等发方回应数据接收到再发送下一包数据。
[解决办法]