不能播音,马上结贴了
不能广播,马上结贴了
客户端
服务端端
m_Addr.sin_addr.S_un.S_addr=inet_addr("255.255.255.255");将255.255.255.255改为客户机192.168.1.189 ,客户机才能看见服务器端屏幕
------解决思路----------------------
帖子最上面左边:管理菜单 结帖 发帖 回复 关注关注
单击结贴就行了
------解决思路----------------------
可以广播了吗?
------解决思路----------------------
答案呢兄弟。
------解决思路----------------------
如果你的子网掩码是255.255.255.0
你的广播地址应该是192.168.1.255吧
------解决思路----------------------
------解决思路----------------------
分享一下解决的方法
客户端
WSADATA data;
WSAStartup(2,&data);
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
struct ip_mreq ipmr;
int len=sizeof(ipmr);
//获取本机IP
//hostent* phost = gethostbyname("");
//char* localIP = inet_ntoa (*(struct in_addr *)*phost->h_addr_list);
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//广播的话是,127.0.0.1
addr.sin_port = htons(5002);
ipmr.imr_multiaddr.s_addr=inet_addr("255.255.255.255");
ipmr.imr_interface.s_addr=htonl(INADDR_ANY);
//设置广播类型setsockopt(m_Socket,SOL_SOCKET,SO_BROADCAST,(char*)&optval,sizeof(optval));
//创建套接字
m_Socket = socket(AF_INET,SOCK_DGRAM,0);
if (m_Socket == INVALID_SOCKET)
{
MessageBox("套接字创建失败!");
}
//绑定套接字
if (bind(m_Socket,(sockaddr*)&addr,sizeof(addr))==SOCKET_ERROR)
{
MessageBox("套接字绑定失败!");
}
setsockopt(m_Socket,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&ipmr,len);
WSAAsyncSelect(m_Socket,m_hWnd,CM_RECEIVED,FD_READ);
m_iRecvCount=1;
return TRUE;
服务端端
int iRemainCount=0;
int m_Count,m_Mod;
m_Count = totalsize / PICPACKSIZE;
m_Mod = totalsize % PICPACKSIZE;
if ( m_Mod != 0)
m_Count+=1;
//char* pPackage;
UDPPACKAGE pack;
m_Addr.sin_family = AF_INET;
m_Addr.sin_port = htons(5002);
//m_Addr.sin_addr.S_un.S_addr = inet_addr(m_ServerIP);
m_Addr.sin_addr.S_un.S_addr=inet_addr("255.255.255.255");//
memset(pack.buffer,0,PICPACKSIZE);
pack.bFinish=false;
pack.buffersize=0;
pack.JpegSize=0;
pack.iIndex=0;
/* //测试发送
sendto(m_Socket,(char*)pSendBuf,PICPACKSIZE,0,(sockaddr*)&m_Addr,sizeof(m_Addr));
Sleep(30);
sendto(m_Socket,(char*)pSendBuf+PICPACKSIZE,PICPACKSIZE,0,(sockaddr*)&m_Addr,sizeof(m_Addr));
Sleep(30);
sendto(m_Socket,(char*)pSendBuf+PICPACKSIZE*2,totalsize-PICPACKSIZE*2,0,(sockaddr*)&m_Addr,sizeof(m_Addr));
Sleep(30);
//CString ss;ss.Format("%d",totalsize);MessageBox(ss);1928114
*/
m_Addr.sin_addr.S_un.S_addr=inet_addr("255.255.255.255");将255.255.255.255改为客户机192.168.1.189 ,客户机才能看见服务器端屏幕
------解决思路----------------------
帖子最上面左边:管理菜单 结帖 发帖 回复 关注关注
单击结贴就行了
------解决思路----------------------
可以广播了吗?
------解决思路----------------------
答案呢兄弟。
------解决思路----------------------
如果你的子网掩码是255.255.255.0
你的广播地址应该是192.168.1.255吧
------解决思路----------------------
// 设置广播===================================
BOOL Temp=TRUE;
setsockopt(sockClient,SOL_SOCKET,SO_BROADCAST,(const char*)&Temp,sizeof(BOOL));
//============================================
------解决思路----------------------
分享一下解决的方法