検索条件
全1件
(1/1ページ)
#include <stdio.h> #include <windows.h> #pragma comment(lib, "wsock32.lib") int main(int argc, char *argv[]) { char buf[1024]; WSADATA wsadata; WSAStartup(0x0002, &wsadata); // socket SOCKET soc = socket(AF_INET, SOCK_DGRAM, 0); printf("socket: %d\\n", soc); #if 1 // bind sockaddr_in addr; addr.sin_family = PF_INET; addr.sin_port = htons(59000); addr.sin_addr.S_un.S_addr = 0x0200007Fu; // 127.0.0.2 addr.sin_addr.S_un.S_addr = 0x0300007Fu; // 127.0.0.3 int ret = bind(soc, (sockaddr*)&addr, sizeof(addr)); printf("bind: %d\\n", ret); if (ret != 0) return 1; #endif #if 1 // recv printf("waiting...\\n"); sockaddr_in from; int sizeoffrom = sizeof(from); int r = recvfrom(soc, buf, sizeof(buf), 0, (sockaddr*)&from, &sizeoffrom); printf("recv: %d\\n", r); #else // send printf("sending...\\n"); sockaddr_in to; to.sin_family = PF_INET; to.sin_port = htons(59000); //to.sin_addr.S_un.S_addr = 0x0200007Fu; //unicast to.sin_addr.S_un.S_addr = 0xFFFFFF7Fu; //broadcast int r = sendto(soc, buf, 16, 0, (sockaddr*)&to, sizeof(to)); int err = GetLastError(); printf("send: %d, err = %d\\n", r, err); #endif closesocket(soc); WSACleanup(); return 0; }