在bind 广播地址 会一直返回-1,忽略即可~
服务器代码:
#include <stdio.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib")
#define ServicPort 1447
void showerr(char * err,bool exit1)
{
printf(err);
if(exit1)
{
getchar();
exit(0);
}
}
int main()
{
WSAData wdata;
WSAStartup(MAKEWORD(2,2),&wdata);
SOCKET service;
SOCKADDR_IN saddr={0};
service = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
int iaddrlen;
if(service == INVALID_SOCKET)
{
showerr("不能创建套接字!\n",true);
return 0;
}
saddr.sin_port = htons(ServicPort);
saddr.sin_family = AF_INET;
saddr.sin_addr.S_un.S_addr = INADDR_BROADCAST;
iaddrlen = sizeof(SOCKADDR_IN);
//设置该套接字为广播类型
bool bOpt = true;
setsockopt(service,SOL_SOCKET,SO_BROADCAST,(char *)&bOpt,sizeof(bOpt));
int err = bind(service,(SOCKADDR * )&saddr,iaddrlen);
while(true)
{
char * buffer = "Hello world!\n There