ホームに戻る
WinSock(Client)
#include <stdio.h>
#include <winsock2.h>
int initClientSock(SOCKET *sock, int port, char *ip){
WSADATA wsaData;
struct sockaddr_in server;
unsigned int **addrptr;
if(WSAStartup(MAKEWORD(2,0), &wsaData) != 0){
return 0;
}
*sock = socket(AF_INET, SOCK_STREAM, 0);
if(*sock == INVALID_SOCKET){
return 0;
}
server.sin_family = AF_INET;
server.sin_port = htons(port);
server.sin_addr.S_un.S_addr = inet_addr(ip);
if(server.sin_addr.S_un.S_addr == 0xffffffff){
struct hostent *host;
host = gethostbyname(ip);
if(host == NULL){
return 1;
}
addrptr = (unsigned int **)host->h_addr_list;
while(*addrptr != NULL){
server.sin_addr.S_un.S_addr = *(*addrptr);
if(connect(*sock, (struct sockaddr *)&server, sizeof(server)) == 0){
break;
}
addrptr++;
}
if(*addrptr == NULL){
return 0;
}
}
else{
if(connect(*sock, (struct sockaddr *)&server, sizeof(server)) != 0){
return 0;
}
}
return 1;
}
int main()
{
SOCKET sock;
char buf[32];
initClientSock(&sock, 12345, "127.0.0.1");
sprintf(buf, "%s", "question");
int n = send(sock, buf, (int)strlen(buf), 0);
if(n < 0){
return 1;
}
n = recv(sock, buf, sizeof(buf), 0);
if(n < 0){
return 1;
}
printf("%s", buf);
closesocket(sock);
WSACleanup();
return 0;
}