winsockを使った通信方法
送信側
#include <winsock2.h>
#include <string.h>
int
main()
{
WSAData wsaData;
SOCKET sock;
struct sockaddr_in addr;
int len;
typedef struct recv {
char Name[32];
int Flag;
} RECV;
RECV send;
WSAStartup(MAKEWORD(2,0), &wsaData);
sock = socket(AF_INET, SOCK_DGRAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
strcat(send.Name, "ABC");
send.Flag=12;
len=sizeof(send);
sendto(sock,(char *)&send,len, 0, (struct sockaddr *)&addr, sizeof(addr));
closesocket(sock);
WSACleanup();
system("pause");
return 0;
}
受信側
#include <stdio.h>
#include <winsock2.h>
#include <string.h>
int
main()
{
typedef struct rcv {
char Name[32];
int Flag;
} RECV;
WSAData wsaData;
SOCKET sock;
struct sockaddr_in addr;
int len;
RECV rcv;
WSAStartup(MAKEWORD(2,0), &wsaData);
sock = socket(AF_INET, SOCK_DGRAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
addr.sin_addr.S_un.S_addr = INADDR_ANY;
bind(sock, (struct sockaddr *)&addr, sizeof(addr));
len=sizeof(rcv);
recv(sock,(char *)&rcv, len, 0);
printf("%s [%d]\n",rcv.Name,rcv.Flag);
closesocket(sock);
WSACleanup();
system("pause");
return 0;
}
winsockを使ったUDP通信プログラムで構造体データを送る事が出来ないのですが
どこに誤りがあるのでしょうか?
コンパイルは通ってるのですが、送信側を起動しても受信側で受け取ることが出来ていない状況です。
お礼
>プロジェクトを作成するときに >「Windows ソケット」を選択しわすれたのだと思います。 まさしくそのとおりでした(^^; 無事解決しました~ SpiralGalaxyさん、ありがとうございます