有关网络编程winsock套接字的问题

自由的风 2001-05-28 05:09:00
我是初学者 编winsock的时候有困难请帮忙
1: winsock有个 select 和WSAAysncSelect的他们好象是检查端口是否有数据,我想请问
  是否要用while(1)的语句来反复调用,来查看套接字。
2:我是用MFC编的程序,但对话框是AppWizard建立的,我如何得到它的句柄,如果是多
个对话框呢?
3:我用char buf[10];CString str;我象把buf的内容加到str里, 用的是strcpy (str,buf)但系统抱错, 不知道该用什么。

请个位多指点 谢谢!!!!!!!!!
...全文
65 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
土豆 2001-07-25
  • 打赏
  • 举报
回复
2.达到窗口句柄可以用::AfxGetMainWnd()->m_hWnd取得;
土豆 2001-07-25
  • 打赏
  • 举报
回复
1.是的,都用while来循环检查数据:
fd_set SocketeSet;
FD_SET(sock,&SocketSet);

while(true)
{
int iRet = select(0,&SocketSet,NULL,NULL,&timeout); //检测读数据
if ((iRet == 0) || (iRet == SOCKET_ERROR)) continue;

DWORD dwRecv = recv(sock,pMsgBuf,2048,0);
......
}
土豆 2001-07-25
  • 打赏
  • 举报
回复
3.不能直接用strcpy(str,buf),要象下面这样使用:
char *p=str.GetBuffer(10);
strcpy(p,buf);
str.ReleaseBuffer(10);
fantong 2001-05-28
  • 打赏
  • 举报
回复
1。用mfc写的话就用不着调用select了,CSocket的基类CAsyncSocket 实现了一个OnReceive 的毁掉函数,由数据酒会调用它
2。看对话框在那儿建立的拉,一般主界面可用AfxGetApp()->m_pMainWnd得到指针,再转化成你的对话框类就可以得到句丙了
3。CString 是一个类,你直接用strcpy向CString开始的地方写当然回出错,而且加应该用strcat,不是strcpy,其实直接str+=buf就ok了
fantong 2001-05-28
  • 打赏
  • 举报
回复
1。用mfc写的话就用不着调用select了,CSocket的基类CAsyncSocket 实现了一个OnReceive 的毁掉函数,由数据酒会调用它
2。看对话框在那儿建立的拉,一般主界面可用AfxGetApp()->m_pMainWnd得到指针,再转化成你的对话框类就可以得到句丙了
3。CString 是一个类,你直接用strcpy向CString开始的地方写当然回出错,而且加应该用strcat,不是strcpy,其实直接str+=buf就ok了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧