UDP
パケットを送信します。C++ UDP bind()は常に-1を返します
私はVisual Studio C++ 2017
を使用している、と私は、これは、この問題を説明するために必要なサンプルコードでLIBにWs2_32.Lib
をリンクした:
#include <iostream>
#include <winsock2.h>
#include <sys/types.h>
#include <memory.h>
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ws2tcpip.h>
int main()
{
sockaddr_in serverAddress;
memset(&serverAddress, 0, sizeof(serverAddress));
serverAddress.sin_family = AF_INET;// AF_UNSPEC;
serverAddress.sin_addr.s_addr = INADDR_ANY;
serverAddress.sin_port = htons(20000);
int result = 0;
SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0); //socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
result = bind(sock, (sockaddr*)&serverAddress, sizeof(serverAddress));
if (result == -1)
{
std::cout << "error!!!!!! Why?";
}
}
なぜできない私だけでbind()
ここsocket
?
私はここにthis投稿を見ましたが、これはちょうどかっこの問題だったので、これは私を助けませんでした。
エラーがありましたか? – EJP
@EJPタイトルを読んでください。 – waas1919
私はあなたのタイトルだけでなく、あなたの全体のポスト、あなたの無邪気なコメントを読んだ。あなたはエラーを提供していません。 -1はエラーではありません。 *エラーを示す*戻り値*です。 Winsock呼び出しの実際のエラーは 'WSAGetLastError()'によって提供されます。これはむしろ基本的なものです。エラー値を印刷して結果をあなたの投稿に含めるようにコードを修正してください。 – EJP