| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 386 人关注过本帖
标题:VC++ SOCKET问题
只看楼主 加入收藏
xl9921
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-1-16
收藏
 问题点数:0 回复次数:0 
VC++ SOCKET问题
功能:服务端与客户端开发,一个服务端对应多个客户端,当有客户端来请求的时候,先接受客户端的求情信息,服务端进行保存与客户端的连接SOCKET,同时在反馈给客户端一个欢迎信息,告诉客户端已经成功建立连接,可以进行通信了,现在问题是出现了接受数据不全的问题,后来使用了循环多次接受,主要代码如下:
               CString strTemp;
                int iResult=0;
                do
                {
                        char recvBuff[256];
                        iResult=recv(sockTemp,recvBuff,strlen(recvBuff)+1,0);  //接受
                        if(iResult>0)
                        {
                                CString strTemp_;
                                strTemp_.Format("%s",recvBuff);
                                strTemp+=strTemp_;
                                writeLog(m_log,"接受数据:"+strTemp_);
                        }
                        else if(iResult==0)
                        {
                                writeLog(m_log,"数据接受完毕:"+strTemp);
                        }
                        else
                        {
                                writeLog(m_log,"数据出错");
                        }
                }while(iResult>0);

上面代码是在一个线程里面循环监听客户端发来的数据,当客户端使用一个shutdown(1)的时候服务端可正常接受数据,之后数据会进入到线程的死循环中,来循环监听客户端的消息,现在的问题是上面的代码只有当客户端调用shutdown的时候才有效,而再次通信的时候就不正常了,

没了思路,求各位大神指点下思路,主要就是实现服务器与多客户端双向通信功能。
联系QQ:654054668
搜索更多相关主题的帖子: 服务端 客户端 开发 通信 信息 
2015-01-16 22:09
快速回复:VC++ SOCKET问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015578 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved