如果同时有多个客户端在向服务端传送文件,通过可以知道是哪个socket触发了FD_READ事件dwIndex = WSAWaitForMultipleEvents(dwEventTotal,pServer->m_EventArray,FALSE,10,FALSE);但如何知道传送过来的是文件数据还是其他信息,是否要将文件数据放入一个结构体进行传输?简单问题!

解决方案 »

  1.   

    我想声明一个新int数组,其每个元素和socket数组对应起来,用来标识文件指针的定位,某个socket无文件传输或传输结束,则int数组中该元素为0,如果有多个客户端同时传输文件,就可以根据dwIndex ,和int数组的文件定位值对应起来,写入相应的文件,这样应该可行,不过是否有更简单的方法?
      

  2.   

    所有的客户端,所有的数据都由这个线程来处理了,可能会这样,A端发了个文件过来,接收过程中服务端收到B端的一个字符串信息,接收完继续接收A端的文件,在这个过程中我要怎么判断服务端接收的数据是A端的文件数据并将其写入本地的文件中,因为都是共享一个WSABUF,所以有这个问题
      

  3.   

    更正一下:跟共享一个WSABUF数组没关系,唉,表达能力问题,一直没说清楚!这么说吧,客户端在传输文件的同时,发送字符串信息,服务端怎么区别是文件数据还是字符串数据放入结构体定义数据的标识吗?