Ich habe gerade versucht, Netcat in MSYS mit MinGW zu bauen und erkannte, dass MinGW nie wirklich alle BSD-Socket-Sachen nach Windows portierte (zB sys/socket.h). Ich weiß, dass Sie Windows Sockets in MinGW verwenden können, aber warum haben sie nie einen Windows-Port der BSD-Sockets gemacht? Ich habe einige Programme mit # ifdef zur Problemumgehung bemerkt. Gibt es irgendwo einen Windows-Port der BSD-Sockets, der stattdessen verwendet werden kann?Sockets in MinGW
Hier sind die Fehler, wenn eine Marke für netcat in MSYS tun:
gcc -DLOCALEDIR=\"\/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -c `test -f 'core.c' || echo './'`core.c
In file included from core.c:29:
netcat.h:38:24: sys/socket.h: No such file or directory
netcat.h:39:63: sys/uio.h: No such file or directory
netcat.h:41:24: netinet/in.h: No such file or directory
netcat.h:42:55: arpa/inet.h: No such file or directory
Es gibt keine # ifdef 's für MinGW. Gibt es eine Bibliothek/ein Paket, das ich zu MSYS hinzufügen kann, um alles ohne Fehler kompilieren zu lassen?
Hinweis: Sie netcat herunterladen können here und durchsuchen Sie die CVS-Repo here
Winsock selbst war ursprünglich ein Port der Berkeley Sockets API. – ChrisW
@ChrisW, ich habe nie verstanden, was es heißt, Winsock anders als UNIX zu machen? – Pacerier
@Pacerier Ich denke, dass Winsock einfacher ist, da es weniger Header-Dateien enthält. Siehe z.B. [Übergang von UNIX zu Windows Socket Programming] (http://cs.baylor.edu/~donahoo/practical/CSockets/WindowsSockets.pdf) für weitere Details. – ChrisW