解决方案 »
- mfc的mdi子窗体口的directx全屏后关闭子窗口的问题
- 急 啊。。我想问哈那个标签控件,我想把它放到左下角实现,怎么实现啊? 用什么其它控件啊??
- Bezier曲线
- 编制dll程序时,为什么release版运行时会出错?
- 在DAO中,如何在基于Table的CDaoRecordset中得到当前的表中所有的记录数量?
- 定义视类的初始位置和大小
- 求教,关于绘图?
- 急!!!菜鸟问题:输入一段字符串,如果该字符串已在某一文件中,则执行某一特定的操作
- (急求助)钻了牛角尖,想弄明白DIB像素位为什么要这么显示;
- msado15 不用注册的调用
- 求个msxml4.dll
- GDI 显示已有的像素数组,用什么方法最高效
#include <stdio.h>void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
} SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000); bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
char recvBuf[100]; recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
printf("%s\n",recvBuf);
closesocket(sockSrv);
WSACleanup();
}
#include <stdio.h>void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
} SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000); sendto(sockClient,"Hello",strlen("Hello")+1,0,
(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
closesocket(sockClient);
WSACleanup();
}
要怎么解决啊?我觉得也是阻塞在这了,但是不知道怎么解决,帮忙一下吧!基于UDP的不用listen啊,孙鑫的看过了!
这个地方我说错了,需要listen的应该是TCP吧
UDP不需要?这个我也不太清楚,我看了一下TCP的,是需要listen的
if(j==1){sendto(socksrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)&addrclient,len);Display();}这个地方recv和sendto顺序是不是反了啊
一般的话是放在一个单独的线程中去recvfrom接收数据,这样不至于把界面卡死
ioctlsocket(socksrv, FIONBIO, &iMode);
把阻塞模式改为非阻塞模式,为什么也不成呢?
最后一个参数错了。0用于IP,UDP不用这个。