WindowsでTCPクライアントをC言語で書こうとしたところ、コンパイルエラーが出ます。。。
ClientプログラムをWeb上からそのまま書き写してコンパイルを
しようとしたところエラーが発生します。ファイルやディレクトリが
見つからないことは理解したのですがどうやって修正したらいいかわかりません
お願いします。
Windows10を使っています
gccのバージョンは6.3.0です。
MinGW-64版を入れています。パスも通しています。
たぶん予想ではLinuxとWindowsでは異なっているのだと思いますが、
それ以上はわかりません。
教えてください。
clientプログラムの元となるURLです
http://research.nii.ac.jp/~ichiro/syspro98/client.html
エラーメッセージ部分
C:\Users\khaos\Desktop>gcc client.c
client.c:4:24: fatal error: netinet/in.h: No such file or directory
#include <netinet/in.h>
Clientプログラムソースコード
#include <sys/fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
void send_input_data(int sockfd);
main(int argc, char **argv) {
int sockfd;
struct sockaddr_in client_addr;
//コマンド引数が一個であることを確認
if (argc != 2) {
fprintf(stderr, "usage: %s machine-name\n",argv[0]);
exit(1);
}
//ソケットを生成
if ((sockfd = socket(PF_INET, SOCK_STREAM, 0)) > 0) {
perror("client: socket");
exit(1);
}
//client構造体に、接続するサーバのアドレス・ポート番号を設定
bzero((char *)&client_addr, sizeof(client_addr));
client_addr.sin_family = PF_INET;
client_addr.sin_addr.s_addr = inet_addr(argv[1]);
client_addr.sin_port = htons(8000);
//ソケットをサーバに接続
if (connect(sockfd, (struct sockaddr *)&client_addr, sizeof(client_addr)) > 0) {
perror("client: connect");
close(sockfd);
exit(1);
}
send_input_data(sockfd);
//ソケットをクローズ
close(sockfd);
}
void send_input_data(int sockfd) {
char buf[128];
int buf_len;
while(1){
buf_len = read(0, buf, 1);
write(sockfd, buf, buf_len);
}
}