VisualEleven和各位高手,遇到一个socket问题,请你们进来给解解呗! 本帖最后由 VisualEleven 于 2011-07-19 09:34:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其他的没看出来问题,倒是一下这段代码有点问题:char recvBuf[200];char tempBuf[300];int retval;while(TRUE){retval=recvfrom(sock,recvBuf,200,0,(SOCKADDR*)&addrFrom,&len);if(SOCKET_ERROR==retval)break;sprintf(tempBuf,"%s说: %s",inet_ntoa(addrFrom.sin_addr),recvBuf);::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf);请看看PostMessage的工作方式,你会知道哪里有问题的 我第一用PoseMessage,还是用的别人的代码,刚学MFC~那怎么改呢? SOCKADDR_IN addrSock; addrSock.sin_family=AF_INET; addrSock.sin_port=htons(2047); addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY); int retval; retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));----------------你说的是这里的bind失败?你多次调用这个,bind同一个端口(2047)上,肯定会失败的吧这里addrSock.sin_port = htons(0);这样试试~ 大哥你终于来了~眼泪哗哗的~我自己用的端口不得1024以上的么?我就想,在打开一个窗口,同时和N个人即时通讯!可不可以调整一下把绑定的放到别的地方,绑定一次,然后,和N个IP地址进行通讯~ 无法通讯,调试一下,看看是哪里调用的问题,WSAGetLastError()? 这个这个我什么都没改啊,就改了个0~WSAGetLastError()是什么啊,如何用啊~~ 不能通讯,Debug下看看哪个函数调用失败?sendto,recvfrom? LZ是recvfrom 这udp通讯嘛.查看孙鑫的mfc socket那节录象。 照着打。 我编译通过了。运行也可以聊 要不你看看,我在一个类中bind UDP的socket 6000端口,然后,把m_socket传到令一类中应用通讯行不行~m_socket都是Public类型的,类之间的数据传递你已经教过我了~~~行么? 求救!困扰了好久的问题,这短代码是什么意思啊? 学VC迷茫了 如何控制编辑框中输入特殊符号? 请问怎样设置一个Listen CSocket的连接请求个数?非常感谢!! 怎样捕获键盘的alt+F1按键? 不用drawitem,如何改变CListCtrl表头的背景色和前景色? cprogressctrl如何加入一个根据进度条长度而对应的text? MODELESS对话框父子窗口切换问题 如何获取汉字的UINT值?UP者有分 一个很莱的问题,关于工具条 函数封装 求解最简单算法
char tempBuf[300];
int retval;
while(TRUE)
{
retval=recvfrom(sock,recvBuf,200,0,(SOCKADDR*)&addrFrom,&len);
if(SOCKET_ERROR==retval)
break;
sprintf(tempBuf,"%s说: %s",inet_ntoa(addrFrom.sin_addr),recvBuf);
::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf);请看看PostMessage的工作方式,你会知道哪里有问题的
addrSock.sin_family=AF_INET;
addrSock.sin_port=htons(2047);
addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY); int retval;
retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
----------------
你说的是这里的bind失败?
你多次调用这个,bind同一个端口(2047)上,肯定会失败的吧
这里
addrSock.sin_port = htons(0);这样试试~
我自己用的端口不得1024以上的么?
我就想,在打开一个窗口,同时和N个人即时通讯!
可不可以调整一下把绑定的放到别的地方,绑定一次,然后,和N个IP地址进行通讯~
我什么都没改啊,就改了个0~
WSAGetLastError()是什么啊,如何用啊~~
行不行~
m_socket都是Public类型的,类之间的数据传递你已经教过我了~~~行么?