Fehlender Parameter in Sockaddr_in InitialisierungLinux

Linux verstehen
Guest
 Fehlender Parameter in Sockaddr_in Initialisierung

Post by Guest »

Ich verfolge ein Online -Tutorial für einen [sehr] einfachen Webserver. Es funktioniert, aber die Initialisierung von Sockaddr_in () fehlt einen Parameter. Ich bin mir also nicht sicher, warum es funktioniert und nicht sicher, was ich für den fehlenden Parameter verwenden soll, um meinen IDE -Parser glücklich zu machen. < /P>
Das Programm: < /p>

Code: Select all

#include 
#include 
#include 
#include 
#include 
#include 

int main(void) {
int s = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in addr = {
AF_INET,
0x901f, // the hex code for 8080 (little endian)
0
};

bind(s, &addr, sizeof(addr));
listen(s, 10);

int client_fd = accept(s, 0, 0);

char buffer[256] = {0};
recv(client_fd, buffer, 256, 0);

char* f = buffer + 5;
*strchr(f, ' ') = 0;
int opened_fd = open(f, O_RDONLY);
sendfile(client_fd, opened_fd, 0, 256);
close(opened_fd);
close(client_fd);
close(s);
return 0;
}
< /code>
Die Bibliotheksdefinition: < /p>
/* Structure describing an Internet socket address.  */
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
in_port_t sin_port;         /* Port number.  */
struct in_addr sin_addr;        /* Internet address.  */

/* Pad to size of `struct sockaddr'.  */
unsigned char sin_zero[sizeof (struct sockaddr)
- __SOCKADDR_COMMON_SIZE
- sizeof (in_port_t)
- sizeof (struct in_addr)];
};
< /code>
Fehler kompilieren: < /p>
$ gcc -o server server.c
server.c: In function ‘main’:
server.c:16:13: warning: passing argument 2 of ‘bind’ from incompatible pointer type [-Wincompatible-pointer-types]
16 |     bind(s, &addr, sizeof(addr));
|             ^~~~~
|             |
|             struct sockaddr_in *
In file included from server.c:1:
/usr/include/x86_64-linux-gnu/sys/socket.h:112:49: note: expected ‘const struct sockaddr *’ but argument is of type ‘struct sockaddr_in *’
112 | extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)
|                                                 ^
Bearbeiten: Kompilierfehler hinzugefügt und Semantik behoben.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post