Skip to content

Instantly share code, notes, and snippets.

@laheadle
Last active December 10, 2015 12:08
Show Gist options
  • Save laheadle/4431740 to your computer and use it in GitHub Desktop.
Save laheadle/4431740 to your computer and use it in GitHub Desktop.
tpeer peer_create(int isServer)
{
init();
speer *p = (speer *)malloc(sizeof(speer));
sockopt_t broadcast=1;
if ((p->socket = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
perror("socket");
exit(1);
}
if ((setsockopt(p->socket, SOL_SOCKET, SO_BROADCAST,
&broadcast, sizeof broadcast)) == -1) {
perror("setsockopt - SO_SOCKET ");
exit(1);
}
memset(&p->addr, 0, sizeof p->addr);
p->addr.sin_family = AF_INET;
p->addr.sin_port = htons(PORT);
p->addr.sin_addr.s_addr = INADDR_BROADCAST;
if (isServer) {
p->addr.sin_addr.s_addr = INADDR_ANY;
if (bind(p->socket, (struct sockaddr*)&p->addr,
sizeof p->addr) == -1) {
perror("bind");
char buf[32];
sprintf(buf, "bind %d", WSAGetLastError());
ulog(buf);
exit(1);
}
}
return p;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment