我在发送端使用CSOCKET类
如下: m_hSocket.Create(2330,SOCK_DGRAM);
m_hSocket.SendTo( p,sizeof(yuan1),3550,"127.0.0.1");
我在接受端也适用Csocket类时,数据能接收
但是我如果不使用csocket类时,而是直接手动添代码,怎么就没有数据传来呢
代码如下:
const timeval timeout={0, 500};
fd_set rdfdset;
struct sockaddr_in addr;
int Stop;
Stop=0;
char p=32738;
SOCKET Sock;
Sock=socket(AF_INET,SOCK_DGRAM,0);
setsockopt(Sock,SOL_SOCKET,SO_RCVBUF,(const char *)&p,sizeof(p));
addr.sin_family = AF_INET;
addr.sin_port = htons(3550);
addr.sin_addr.s_addr = htonl(0);
bind(Sock,(struct sockaddr *)&addr,sizeof(struct sockaddr));
// while(!Stop)
// {
FD_ZERO(&rdfdset);
FD_SET(Sock,&rdfdset);
select(FD_SETSIZE,&rdfdset,NULL,NULL,(const struct timeval *)&timeout);
if (FD_ISSET(Sock,&rdfdset))
{ Stop=1;
//接收
AfxMessageBox("receive");
}
// }
如下: m_hSocket.Create(2330,SOCK_DGRAM);
m_hSocket.SendTo( p,sizeof(yuan1),3550,"127.0.0.1");
我在接受端也适用Csocket类时,数据能接收
但是我如果不使用csocket类时,而是直接手动添代码,怎么就没有数据传来呢
代码如下:
const timeval timeout={0, 500};
fd_set rdfdset;
struct sockaddr_in addr;
int Stop;
Stop=0;
char p=32738;
SOCKET Sock;
Sock=socket(AF_INET,SOCK_DGRAM,0);
setsockopt(Sock,SOL_SOCKET,SO_RCVBUF,(const char *)&p,sizeof(p));
addr.sin_family = AF_INET;
addr.sin_port = htons(3550);
addr.sin_addr.s_addr = htonl(0);
bind(Sock,(struct sockaddr *)&addr,sizeof(struct sockaddr));
// while(!Stop)
// {
FD_ZERO(&rdfdset);
FD_SET(Sock,&rdfdset);
select(FD_SETSIZE,&rdfdset,NULL,NULL,(const struct timeval *)&timeout);
if (FD_ISSET(Sock,&rdfdset))
{ Stop=1;
//接收
AfxMessageBox("receive");
}
// }
解决方案 »
- GDI 画线问题
- C++分段计算平均值
- 问比较棘手的问题有关于CList Ctrl 控件
- 400分求解:如何让DVD刻录实时刻录摄像头捕获的信息?
- MFC 开发人员指南 VisualC++技术内幕(第四版)深入浅出MFC _简体版 下载地址,要的看过来.
- 求助:ActiveX程序,Unicode化之后,出现error LNK2001
- 重画对话框标题栏问题之二
- 简单问题:VC程序的运行顺序(.h,.C,.rc.)是怎样的?
- 怎样用CreateProcess调用外部程序创建一个进程同时休眠主进程直到外部程序结束,很急?
- 我想在桌面上画画,可是为什么运行后没反应?????
- 请教CSocket 类的send()触发onreceive()
- 请解释“句柄”的涵义
再不行试着去掉setsockopt(Sock,SOL_SOCKET,SO_RCVBUF,(const char *)&p,sizeof(p));