那Im上工作(这是一个Unix下C多线程非块套接字服务器)需要从客户端接收一个文件,并将其广播到连接到所有其他客户端的服务器服务器。非块插座连续文件传输
一切都在那不好受林来确定当一个文件被转移做...因为即时通讯使用时遇到的问题文件传输的recv返回-1时有时无堵塞插座进出口异常的工作(这我是假设是文件的结尾),那么下一次多个字节进来。
我尝试破解整个事情将“END”在流的末尾。但是,有时在一行中发送多个文件时,“END”与下一个文件的开头是同一个recv缓冲区的一部分。甚至是最糟糕的,有时我结束了与EN和下传的d进来完成一个缓冲。
什么是避免上述情况的最好办法,我真的不希望每一次我从套接字循环中接收了一些字节的整个累积缓冲区,以检查“END”是否是它的一部分,然后适当地剪切......我确定有更好的解决方案来解决这个问题吗?
在此先感谢!
在发送数据本身之前,为什么不先发送文件大小? – 2012-03-03 07:12:12