我正在学习SDK编程,我想用Win32 Application编写一个网络程序
服务器端主要是监听端口,接收客户端发来的数据文件
客户端(有多个)主要是定时向服务器发送最新的数据文件我目前的设计思路是服务器端启动后,在响应WM_CREATE消息时建立socket监听端口bind,listen(sock, 1),accept,
有客户端connect时,服务器接收,请大家看看我这个思路是否可行我其实是想,每当有一个客户端连接时,服务器端就建立一个线程去处理这个连接,可是我的多线程版服务器端数据总是收不全,不知道windows接收数据的缓冲区是给每个进程分配一个,还是给每个线程分配一个,
请大家多多指点

解决方案 »

  1.   

    思路可行,接收数据的缓冲区是和每个socket相关的,也就是说如果每个线程又一个socket的话,互相的缓冲区是不冲突的。
      

  2.   

    接收数据的缓冲区是和每个socket相关的 正解!
      

  3.   

    我有点搞不懂的就是你的设计用SDK WIN32 Console不是更好?
     还有你说的设计到每个client启动一个线埕,然后缓冲区出错?
     每个socket内部都有自己的缓冲区,你不用应用程序担心,你要
    处理的是系统缓冲区(你自己定义的缓冲区)
    楼主是不是没有实现加锁,解锁的操作?(在操作系统缓冲区的时候!!!!)
      

  4.   

    缓冲区是与SOCKET相关的,估计是同步没弄好。