最近刚开始学习socket编程,遇到了一个问题:
    我用对话框来实现服务器的接收客户端的连接和发送过来的数据。一对话框上有一个Edit控件接收客户端发送的数据, 有一个Button控件来运行服务,也就是点击一下按钮服务器开始运行。我与到的问题是我点击一下按钮,只能接收一个客户端的连接。我想把accept放在while(TRUE)里来实现循环不断接收。当按下按钮时,发生了对话框不死在哪不会动了,连接没有响应,edit编辑框也不能接收到数据,当有窗口遮挡住这个对话框时编辑框和按钮都看不到变成了和窗体一样的颜色。不过客户端还是可以连接上,并可以接收到服务器返回的数据。这是怎么会事,我应该怎么用accept这个函数?
   请各位指导!

解决方案 »

  1.   

    服务器端的接受循环放在一个线程中,在按下 button后 启动线程
    如果在 button 函数中使用 while(ture) 循环 窗口就无法处理其他消息了。
      

  2.   

    你不能影响windows的消息处理,用WSAAsynSelect关注FD_ACCEPT就不错,有连接进来你的窗口就会收到你定义的消息,
    然后你再accept,对于每个accpet后返回的套接字再起线程处理,在线程里接收该套接字的数据后再通过edit控件显示出来。
      

  3.   

    说点其他的:
    你初学者?一上来就又mfc又网络编程的? 慢慢来,不能急。
      

  4.   

    有很多方法,建立多看看网(Windows网络编程第二版)
      

  5.   

    请问版主,我怎样才能提出自己的问题做为帖子而发出呢,在csdn上
      

  6.   

    谢谢各位的热心指导,我已经把问题搞定了。
         就是那个什么WSAAsynSelect还不懂,不知道怎么用〉
    谁能说详细一点,最好是这个例子的一部分关键程序。谢谢了!!!