作者:川川shilohjr_993 | 来源:互联网 | 2023-08-23 11:39
我只有一个办法,就是在发送端send的时候,就说明这个文件的大小,然后在recv端先知道要接收多少,我有两本书,书上的例子全是定义好的大小,一个是100字节,一个是260字节,不允许超过,我估计超过就
我只有一个办法,就是在发送端send的时候,就说明这个文件的大小,然后在recv端先知道要接收多少,我有两本书,书上的例子全是定义好的大小,一个是100字节,一个是260字节,不允许超过,我估计超过就挺复杂的,所以没写。而头儿说,套接字已经很成熟了,肯定有好办法。还给我两个例子看,虽然写是C++的,但全是VC的,VC我也能看懂呀,可他用的是CSocket类做的,用的是人家封装好的OnReceive函数,而且一个例子是错的,接收文件始终只有几字节。另一个例子根本就编译不通过,它包含一个TcpSever.h头文件根本就不存在。
2 个解决方案
你不是有办法吗?
做一个结构,先把发送的文件的信息传过去,再发送文件体。
通过socket自己处理文件传输,发送端可以读取文件后,将文件拆分成多个包,然后分包发送,接收端进行组装。
由于接收端需要知道每个包的大小和包的数量,就需要你定义这种包的包头。两端解析。如果考虑的更全面,可以增加接收端的确认和重发消息处理。