2011|08|
2013|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|07|08|09|10|11|12|
2016|01|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|

2014-03-25 UDP送受信プログラム

UDP受信プログラム
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int
main()
{
 int sock;
 struct sockaddr_in addr;
 char buf[2048];
 sock = socket(AF_INET, SOCK_DGRAM, 0);
 addr.sin_family = AF_INET;
 addr.sin_port = htons(12345);
 addr.sin_addr.s_addr = INADDR_ANY;
 bind(sock, (struct sockaddr *)&addr, sizeof(addr));
 memset(buf, 0, sizeof(buf));
 recv(sock, buf, sizeof(buf), 0);
 printf("%s\n", buf);
 close(sock);
 return 0;
}
UDP送信プログラム
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int
main()
{
 int sock;
 struct sockaddr_in addr;
 sock = socket(AF_INET, SOCK_DGRAM, 0);
 addr.sin_family = AF_INET;
 addr.sin_port = htons(12345);
 addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 sendto(sock, "HELLO", 5, 0, (struct sockaddr *)&addr,  sizeof(addr));
 close(sock);
 return 0;
}
/***********************************************************
 ** Function : UDP受信テストプログラム(MinGW on Win7)
 ** File Name: udp_recv_test.c
 ** Debug    : gcc -g udp_recv_test.c -o udp_recv_test -lwsock32 -lws2_32
 ** Author   : 
 ** create   : 
 ** modify   :
 ***********************************************************/
//----------------------------------------------------------
// Includes
//----------------------------------------------------------
#include <stdio.h>
#include <sys/types.h>
#include <winsock2.h>
#include <ws2tcpip.h>
//#include <sys/socket.h>
//#include <netinet/in.h>
//#include <arpa/inet.h>
//#include <netdb.h>
//----------------------------------------------------------
// Defines
//----------------------------------------------------------
#define _POSIX_SOURCE  1    /* POSIX comliant source (POSIX)*/
#define BUFFSIZE       2048
#define FALSE          0
#define TRUE           1
//----------------------------------------------------------
// Globals
//----------------------------------------------------------
//----------------------------------------------------------
// Prototype
//----------------------------------------------------------
int main(int argc, char *argv[]);
//----------------------------------------------------------
// Code
//----------------------------------------------------------
int main(int argc, char *argv[])
{
  WSADATA wsaData;
  SOCKET sock;
  struct sockaddr_in addr;
  //int sock;
  char buf[2048];
  char *deststr;
  unsigned int **addrptr;
  /*******************************************************
   ** Initialize 
   ********************************************************/
  if (WSAStartup(MAKEWORD(2,0), &wsaData) == SOCKET_ERROR) {
	printf ("Error initialising WSA.\n");
	return -1;
  }
  sock = socket(AF_INET, SOCK_DGRAM, 0);
  if (sock < 0) {
	perror("socket");
	return 1;
  }
  /*******************************************************
   ** Process 
   *******************************************************/
  //------------------------------------------------------
  // (1)
  //------------------------------------------------------
  addr.sin_family = AF_INET;
  addr.sin_port = htons(12345);
  addr.sin_addr.s_addr = INADDR_ANY;
  //------------------------------------------------------
  // (2)bind
  //------------------------------------------------------
  bind(sock, (struct sockaddr *)&addr, sizeof(addr));
  //------------------------------------------------------
  // (3)recv
  //------------------------------------------------------
  memset(buf, 0, sizeof(buf));
  recv(sock, buf, sizeof(buf), 0);
  printf("%s\n", buf);
  /*******************************************************
   ** Terminate 
   *******************************************************/
  //close(sock);
  closesocket(sock);
  WSACleanup();
  return 0;
}
/***********************************************************
 ** Function : UDP受信テストプログラム(MinGW on Win7)
 ** File Name: udp_recv_test.c
 ** Debug    : gcc -g udp_recv_test.c -o udp_recv_test -lwsock32 -lws2_32
 ** Author   : 
 ** create   : 
 ** modify   :
 ***********************************************************/
//----------------------------------------------------------
// Includes
//----------------------------------------------------------
#include <stdio.h>
#include <sys/types.h>
#include <winsock2.h>
#include <ws2tcpip.h>
//#include <sys/socket.h>
//#include <netinet/in.h>
//#include <arpa/inet.h>
//#include <netdb.h>
//----------------------------------------------------------
// Defines
//----------------------------------------------------------
#define _POSIX_SOURCE  1    /* POSIX comliant source (POSIX)*/
#define BUFFSIZE       2048
#define FALSE          0
#define TRUE           1
//----------------------------------------------------------
// Globals
//----------------------------------------------------------
//----------------------------------------------------------
// Prototype
//----------------------------------------------------------
int main(int argc, char *argv[]);
//----------------------------------------------------------
// Code
//----------------------------------------------------------
int main(int argc, char *argv[])
{
  WSADATA wsaData;
  SOCKET sock;
  struct sockaddr_in addr;
  //int sock;
  char buf[2048];
  char *deststr;
  unsigned int **addrptr;
  /*******************************************************
   ** Initialize 
   ********************************************************/
  if (WSAStartup(MAKEWORD(2,0), &wsaData) == SOCKET_ERROR) {
	printf ("Error initialising WSA.\n");
	return -1;
  }
  sock = socket(AF_INET, SOCK_DGRAM, 0);
  if (sock < 0) {
	perror("socket");
	return 1;
  }
  /*******************************************************
   ** Process 
   *******************************************************/
  //------------------------------------------------------
  // (1)
  //------------------------------------------------------
  addr.sin_family = AF_INET;
  addr.sin_port = htons(12345);
  addr.sin_addr.s_addr = INADDR_ANY;
  //------------------------------------------------------
  // (2)bind
  //------------------------------------------------------
  bind(sock, (struct sockaddr *)&addr, sizeof(addr));
  //------------------------------------------------------
  // (3)recv
  //------------------------------------------------------
  memset(buf, 0, sizeof(buf));
  recv(sock, buf, sizeof(buf), 0);
  printf("%s\n", buf);
  /*******************************************************
   ** Terminate 
   *******************************************************/
  //close(sock);
  closesocket(sock);
  WSACleanup();
  return 0;
}