Visual C++ 2019でWinSock
Suns & Moon Laboratory
2021-03-02
ちょっとC言語からUDP送信したくなったので調査
素材
VisualStudio(VisualC++2019)
UDP送信
Geekなページ UDPを使う
#include <stdio.h>
#include <stdint.h>
#include <winsock2.h>
#include <winsock.h>
int test(void)
{
WSADATA wsaData;
SOCKET sock;
struct sockaddr_in addr;
WSAStartup(MAKEWORD(2, 0), &wsaData);
sock = socket(AF_INET, SOCK_DGRAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(49152);
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sendto(sock, "HELLO", 5, 0, (struct sockaddr*)&addr, sizeof(addr));
closesocket(sock);
WSACleanup();
printf("hey");
return 0;
}
コンパイル設定
メニューのプロジェクト→プロパティ
プロパティページダイアログの「構成プロパティ」→「リンカー」→「入力」→「追加の依存ファイル」→ws2_32.libを追加
コンパイルエラー対策
ソケット通信のコンパイルエラーについて 2015/1/9
メニューのプロジェクト→プロパティ
プロパティページダイアログの「構成プロパティ」→「C/C++」→「全般」→「SDLチェック」を「いいえ」にする
ちなみにこれが「はい」だと、上記ソースコンパイル時エラーが発生する
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C4996 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings ConsoleApplication1
いいえにしても、ワーニング出るんですけどね
warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
end.
2024-08-14 11:00:26 32400