WinSock

#include <windows.h>
#include <stdio.h>
#define LOCALHOST "127.0.0.1"
#define PORT_NO   20000

int main()
{
  WSADATA wsaData;
  SOCKADDR_IN sa;
  SOCKET s;
  BYTE buf[32];
  DWORD tick;
  int ret, n;
  // 初期化
  ret = WSAStartup(0x0101, &wsaData);
  if( ret != 0 ) return -1;
  // ソケットの作成
  s = socket(PF_INET, SOCK_DGRAM, 0);
  if( s == SOCKET_ERROR ) return -1;
  // バインド  sa.sin_family = AF_INET;
  sa.sin_addr.s_addr = INADDR_ANY;
  sa.sin_port = PORT_NO;
  ret = bind(s, (SOCKADDR *)&sa, sizeof(sa));
  if( ret == SOCKET_ERROR ) return -1;
  // 送信先セット
  sa.sin_family      = AF_INET;
  sa.sin_addr.s_addr = inet_addr(LOCALHOST);
  sa.sin_port        = PORT_NO;
  // 送信  strcpy(buf, "ABC");
  ret = sendto(s, buf, strlen(buf)+1, 0, (SOCKADDR *)&sa, sizeof(sa));
  if( ret == SOCKET_ERROR ) return -1;
  Sleep(1000);
  // 受信
  n = sizeof(sa);
  ret = recvfrom(s, buf, sizeof(buf), 0, (SOCKADDR *)&sa, &n);
  if( ret == SOCKET_ERROR ) return -1;
  // 受信データの表示
  printf("recv data=[%s]\n", buf);
  // ソケットの破棄
  closesocket(s);
  // クリーンアップ
  WSACleanup();
  return 0;
}
最終更新:2008年11月06日 22:06
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。