receive到数据后,如何将控制信息和真正数据分开
不知道说的对不对
连接成功后,
第一次receive 数据时,传的是控制信息,
从buffer取出数据,然后转换为文件信息结构,察看控制信息中的数据,
如果接受请求,向客户端发个返回信息,新开一个线程,专门接收数据,以后传来的都是数据了,也不用判断了
而客户端接到返回信息后,同样转换buffer中的信息到文件结构,如果同意传输文件,也是先开个线程传输。
这样的话,以后receive到的信息怎么办,以后receive到的信息都是数据了,也转换不成结构了,这不出错了,而每次传数据都把数据放到结构中,其中还有不必要的文件信息,这样也不好。判断buffer长度行不行,比如,结构长度为5,而传数据长度为100,每次判断长度,如果长度是5的话就转换,否则抛弃,这样也不对,抛弃了,线程中的数据怎么办,不知道我说的命不明白
还有个问题就是怎么转换成结构信息
receive(buffer,sizeof(buffer))
struct file{int filename,int filesize};
然后怎么转换
如果客户端还要同时传别的文件,是不是有新建了一个socket,对上面的那个没影响。