Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
workshop:sockets [2010-09-29 19:59]
equinox
workshop:sockets [2015-09-16 12:41] (current)
Line 10: Line 10:
 Es folgen ein paar simple Beispielprogramme die die Verwendung von Sockets unter Unix zeigen. Alle Beispiele und ein kleines Makefile können auch direkt per unten stehendem Link heruntergeladen werden: Es folgen ein paar simple Beispielprogramme die die Verwendung von Sockets unter Unix zeigen. Alle Beispiele und ein kleines Makefile können auch direkt per unten stehendem Link heruntergeladen werden:
  
-{{workshops:​socket-examples.tar.gz|socket-examples.tar.gz}}+{{workshop:​socket-examples.tar.gz|socket-examples.tar.gz}}
  
 Es folgt noch der Code für einen sehr simplen Chat Server anhand dessen die Verwendung des Resolvers (DNS etc.) gezeigt wird. Es folgt noch der Code für einen sehr simplen Chat Server anhand dessen die Verwendung des Resolvers (DNS etc.) gezeigt wird.
Line 64: Line 64:
   }   }
     ​     ​
-  struct sockaddr_in local_addr; 
-  memset((char *) &​local_addr,​ 0, sizeof(local_addr));​ 
-  local_addr.sin_family = AF_INET; 
-  local_addr.sin_port = htons(4321);​ 
-  local_addr.sin_addr.s_addr = htonl(INADDR_ANY);​ 
- 
-  if(bind(sock,​ (struct sockaddr *)&​local_addr,​ sizeof(local_addr))==-1) {  
-    perror("​bind() call failed"​);​ 
-    exit(-1); 
-  } 
- 
   struct sockaddr_in remote_addr;​   struct sockaddr_in remote_addr;​
   int alen, len;   int alen, len;
Line 105: Line 94:
 } }
 </​file>​ </​file>​
 +
 ==== Beispiel: udpserver ==== ==== Beispiel: udpserver ====
  
Line 313: Line 303:
 #include <​sys/​types.h>​ #include <​sys/​types.h>​
 #include <​sys/​socket.h>​ #include <​sys/​socket.h>​
- 
 #include <​arpa/​inet.h>​ #include <​arpa/​inet.h>​
 +
 +#include <​sys/​select.h>​
  
 int main(int argc, char** argv) int main(int argc, char** argv)
Line 348: Line 339:
   uint8_t buffer[1500];​   uint8_t buffer[1500];​
   struct sockaddr_in remote_addr;​   struct sockaddr_in remote_addr;​
-  ​int alen, len;+  ​memset (&​remote_addr0, sizeof(remote_addr));​ 
 +  int len, alen=sizeof(remote_addr);
   for (;;) {   for (;;) {
     memcpy(&​tmpfds,​ &​readfds,​ sizeof(tmpfds));​     memcpy(&​tmpfds,​ &​readfds,​ sizeof(tmpfds));​
realraum Graz, Brockmanngasse 15, 8010 Graz, realraum - Verein für Technik in Kultur und Gesellschaft
  • /var/lib/dokuwiki/data/pages/workshop/sockets.txt
  • Last modified: 2015-09-16 12:41
  • (external edit)