ホームに戻る
 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;
}


inserted by FC2 system