Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>my errno is 227 (I think) which reads</p> <p>sendto: Can't assign requested address</p> <p>I think it can't find a broadcasting port when my vpn gets turned on, here is an example when I turn on my vpn and turn it back off</p> <p>2010-06-25 04:05:55.022 SwypeSendForMac2[63687:6203] wrote 187 bytes to socked 6 2010-06-25 04:05:56.023 SwypeSendForMac2[63687:6203] wrote 187 bytes to socked 6 2010-06-25 04:05:57.024 SwypeSendForMac2[63687:6203] wrote 187 bytes to socked 6 sendto: Can't assign requested address sendto: Can't assign requested address sendto: Can't assign requested address sendto: Can't assign requested address sendto: Can't assign requested address sendto: Can't assign requested address sendto: Can't assign requested address 2010-06-25 04:06:05.027 SwypeSendForMac2[63687:6203] wrote 187 bytes to socked 6 2010-06-25 04:06:06.031 SwypeSendForMac2[63687:6203] wrote 187 bytes to socked 6</p> <p>the middle of course is with the vpn on</p> <p>here is my roouting table <strong>without the vpn:</strong></p> <p>34:~ samuelw$ netstat -r Routing tables</p> <p>Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.1.1 UGSc 63 0 en1 127 localhost UCS 0 0 lo0 localhost localhost UH 1 180317 lo0 169.254 link#5 UCS 1 0 en1 cronos.local link#5 UHLW 0 1 en1 192.168.1 link#5 UCS 4 0 en1 192.168.1.1 90:84:d:d3:e2:54 UHLWI 69 1260 en1 1123 192.168.1.98 0:11:24:a2:41:6d UHLWI 0 324 en1 1112 192.168.1.152 0:21:e9:76:fe:6b UHLWI 0 0 en1 657 192.168.1.153 localhost UHS 0 118 lo0 192.168.1.154 0:21:5c:52:e0:11 UHLWI 1 2662 en1 1134</p> <p>Internet6: Destination Gateway Flags Netif Expire localhost localhost UH lo0 fe80::%lo0 localhost Uc lo0 localhost link#1 UHL lo0 fe80::%en1 link#5 UC en1 samuelmacbook.loca 0:1e:c2:a6:64:98 UHL lo0 cronos.local 0:21:5c:52:e0:11 UHLW en1 ff01:: localhost Um lo0 ff02:: localhost UmC lo0 ff02:: link#5 UmC en1</p> <p><strong>and with my vpn</strong></p> <p>34:~ samuelw$ netstat -r Routing tables</p> <p>Internet: Destination Gateway Flags Refs Use Netif Expire default 172.16.20.1 UGSc 8 0 ppp0 default 192.168.1.1 UGScI 1 0 en1 127 localhost UCS 0 0 lo0 localhost localhost UH 1 180323 lo0 169.254 link#5 UCS 1 0 en1 cronos.local link#5 UHLW 0 1 en1 172.16.20.1 34.108.131.216.cli UH 9 0 ppp0 192.168.1 link#5 UCS 5 0 en1 192.168.1.1 90:84:d:d3:e2:54 UHLWI 3 1346 en1 1104 192.168.1.98 0:11:24:a2:41:6d UHLWI 2 378 en1 1093 192.168.1.152 0:21:e9:76:fe:6b UHLWI 0 0 en1 637 192.168.1.153 localhost UHS 0 118 lo0 192.168.1.154 0:21:5c:52:e0:11 UHLWI 1 2665 en1 1114 192.168.1.255 ff:ff:ff:ff:ff:ff UHLWbI 0 2 en1 strong-sf1.reliabl 192.168.1.1 UGHS 25 25 en1 216.131.108 ppp0 USc 0 0 ppp0</p> <p>Internet6: Destination Gateway Flags Netif Expire localhost localhost UH lo0 fe80::%lo0 localhost Uc lo0 localhost link#1 UHL lo0 fe80::%en1 link#5 UC en1 samuelmacbook.loca 0:1e:c2:a6:64:98 UHL lo0 cronos.local 0:21:5c:52:e0:11 UHLW en1 ff01:: localhost Um lo0 ff02:: localhost UmC lo0 ff02:: link#5 UmC en1</p> <p>and here is my code split into 2 functions</p> <ul> <li><p>(int)startService { broadcast = 1;</p> <p>if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); }</p> <p>// this call is what allows broadcast packets to be sent: if (setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &amp;broadcast, sizeof broadcast) == -1) { perror("setsockopt (SO_BROADCAST)"); exit(1); }</p> <p>their_addr.sin_family = AF_INET; // host byte order</p> <p>their_addr.sin_port = htons(SERVERPORT); // short, network byte order</p> <p>their_addr.sin_addr.s_addr = htonl(INADDR_BROADCAST);</p> <p>memset(their_addr.sin_zero, '\0', sizeof their_addr.sin_zero);</p> <p>return 0; }</p></li> <li><p>(void)publishServiceLoop { NSAutoreleasePool * autoreleasePool = [[NSAutoreleasePool alloc] init]; NSString * message;</p> <p>while (alive) { while ((message = [AdyNetServer encodeToXML:server]) == nil) { [NSThread sleepForTimeInterval:3.0]; } const char * msgString = [message cStringUsingEncoding:NSUTF8StringEncoding]; if ((numbytes=sendto(sockfd, msgString, [message length], 0, (struct sockaddr *)&amp;their_addr, sizeof their_addr)) == -1) { perror("sendto"); if ([[AdyErrorAlerter sharedInstance] delegate]) { [[[AdyErrorAlerter sharedInstance] delegate] receiveErrorMessage:[NSString stringWithFormat: @"unable to broadcast to socket %d, with message %@",sockfd,msgString]]; }</p> <pre><code> } else { NSLog(@"wrote %d bytes to socked %d",numbytes,sockfd); } //printf("sent %d bytes to %s\n", numbytes, // inet_ntoa(their_addr.sin_addr)); [NSThread sleepForTimeInterval:1.0]; [autoreleasePool release]; autoreleasePool = [[NSAutoreleasePool alloc] init]; </code></pre> <p>} [autoreleasePool release]; if (thread != nil) { thread = nil; [thread release]; } }</p></li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload