Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void DLLEXPORT reopen_bcast_socket()
- {
- if( BCASTSocket != INVALID_SOCKET ) {
- closesocket(BCASTSocket);
- }
- if( (BCASTSocket = socket(AF_INET, SOCK_DGRAM, 0)) != INVALID_SOCKET ) {
- BOOL bVal = TRUE;
- if( setsockopt(BCASTSocket, SOL_SOCKET, SO_BROADCAST, (const char*)&bVal, sizeof(bVal)) == SOCKET_ERROR ||
- setsockopt(BCASTSocket, SOL_SOCKET, SO_REUSEADDR, (const char*)&bVal, sizeof(bVal)) == SOCKET_ERROR ) {
- closesocket(BCASTSocket);
- BCASTSocket = INVALID_SOCKET;
- } else {
- struct sockaddr_in local;
- local.sin_family = AF_INET;
- local.sin_addr.S_un.S_addr = htonl(bBCastFilterIP ? INADDR_LOOPBACK : INADDR_ANY);
- local.sin_port = htons(wBCastUdpPort);
- if( bind(BCASTSocket, (const sockaddr*)&local, sizeof(local)) == SOCKET_ERROR ) {
- closesocket(BCASTSocket);
- BCASTSocket = INVALID_SOCKET;
- }
- }
- }
- }
- void broadcast_command(char *arg)
- {
- if( BCASTSocket == INVALID_SOCKET ) {
- /* ... */
- } else {
- /* ... */
- struct sockaddr_in local;
- local.sin_family = AF_INET;
- local.sin_addr.S_un.S_addr = htonl(INADDR_BROADCAST);
- local.sin_port = htons(wBCastUdpPort);
- int len = strlen(result), sent;
- sent = sendto(BCASTSocket, result, len, 0, (const sockaddr*)&local, sizeof(local));
- if(sent != len) {
- /* ... */
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement