workshop:sockets

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 17:57] equinoxworkshop:sockets [2025-11-09 09:25] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Vortrag/Workshop Einführung in Einführung Unix Socket Programmierung ======+====== Vortrag/Workshop Einführung in Unix Socket Programmierung ======
  
   * by Christian Pointner   * by Christian Pointner
 +
  
  
Line 9: 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.
  
 ==== Beispiel: udpclient ==== ==== Beispiel: udpclient ====
Line 61: 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 102: Line 94:
 } }
 </file> </file>
 +
 ==== Beispiel: udpserver ==== ==== Beispiel: udpserver ====
  
Line 310: 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 345: 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));
  • /srv/dokuwiki/data/attic/workshop/sockets.1285783032.txt.gz
  • Last modified: 2025-11-09 09:24
  • (external edit)