C言語のread関数の使い方がわからず困っています。(コンパイルしようとしてもread関数のところでエラーになる。)
下記のコードの中の
c
1#include <winsock2.h> 2 3int 4main() 5{ 6 WSADATA wsaData; 7 SOCKET sock0; 8 struct sockaddr_in addr; 9 struct sockaddr_in client; 10 int len; 11 SOCKET sock; 12 13 WSAStartup(MAKEWORD(2, 0), &wsaData); 14 15 sock0 = socket(AF_INET, SOCK_STREAM, 0); 16 17 addr.sin_family = AF_INET; 18 addr.sin_port = htons(12345); 19 addr.sin_addr.S_un.S_addr = INADDR_ANY; 20 21 bind(sock0, (struct sockaddr*) & addr, sizeof(addr)); 22 23 listen(sock0, 5); 24 25 while (1) { 26 len = sizeof(client); 27 sock = accept(sock0, (struct sockaddr*) & client, &len); 28 read(int sock, (struct sockaddr*) &client,&len); ←ここ 29 30 closesocket(sock); 31 } 32 33 WSACleanup(); 34 35 return 0; 36} 37end
c
1read(int sock, (struct sockaddr*) &client,len); ←ここ
ここです。
read関数の使い方
c
1#define _OE_SOCKETS 2#include <unistd.h> 3 4ssize_t read(int socket, void *buf, ssize_t N);
まず第一引数には
接続されたソケットを指定するとあります。
つまり、acceptで接続できたものを指定するのだから
sockを指定しました。
あと参考にした記事では
read関数の前にssize_t
があるのですがこれは一体なんですか?
ssize_tに関する説明は一切書かれていません。
いろいろ試したのですがわかりません。
分からないので参考になるリンクまたは説明をお願いします。
回答1件
あなたの回答
tips
プレビュー