整容说文库 > 程序代码 > 教育资讯

新手关于在WSAEventSelect模型下套接字传输的两个问题

来源:学生作业帮助网 编辑:整容说文库 时间:2021/05/19 07:04:48 程序代码
新手关于在WSAEventSelect模型下套接字传输的两个问题程序代码
1、该模式下将所有的recv()都由FD_READ的消息通知触发。对于不同的recv()数据内容,程序将要采取不同的步骤响应,该如何区别?是否是自定义的传输协议中对recv()的数据加个标志,程序先读这个标志,再对该数据采取不同的措施?那如果是传输大文件,每次都要进行判断,岂不是开销很大?
2、在FD_READ的消息通知触发的程序中,如果想发送数据出去该怎么办?是再触发FD_WRITE,还是直接SEND?
1.对于多个客户端,可以通过判断FD_READ事件由哪个客户端引起,来recv()该客户端的数据。
  不必要加上标志。
2。直接send()
采用自定义报文
TCP/IP连接可以定义一个MESSAGE_HEAD结构
来读取sizeof(MESSAGE_HEAD)字节的内容
来判断你send的信息
然后决定做事

开销并不会大 recv 两次
goodluckyxl:如果同时要在FD_READ的消息通知触发的程序中连续读缓冲,以获得一个大文件,那每次获得数据都要读两次,来判断MESSAGE_HEAD,我觉得开销还是很大的
程序代码