最简单的UDP程序

不喜欢看太复杂的原理说明,只为快速地编出程序,这个是经过简化的最简单的UDP发送程序:

代码
// mywsk.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include
<stdio.h>
#include
<winsock.h>
#pragma comment(lib, "Ws2_32.lib")

void handle_error(void); /* Error handler routine */

int main()
{
WORD wVersionRequested;
/* 需要的socket dll 版本信息 */
WSADATA wsaData;
/* data for socket lib initialization */
// 初始化winsock库
wVersionRequested = 0x0101; /* 版本号:1.1 */
if ( !WSAStartup( wVersionRequested, &wsaData ) )
{
// 这里要检查一下版本号是否正确,为简化,去掉了
// 打开一个UDP socket
SOCKET sock; /* socket */
struct sockaddr_in address; /* SOCKET地址 */
if ( (sock = socket(AF_INET, SOCK_DGRAM ,0 /*IPPROTO_UDP*/)) != INVALID_SOCKET )
{
address.sin_family
=AF_INET; /* internet */
address.sin_port
= htons(60000); /* 端口号 */
address.sin_addr.s_addr
=inet_addr("127.0.0.1"); // 目的IP地址,向本机发送写"127.0.0.1"

// 循环发送
for(int i=0;i<5000;i++)
{
int err; /* 错误号 */
char buf[256];
sprintf(buf,
"Hello,world! i=%d!",i);
// 发送这个字符串
err=sendto(sock,buf,strlen(buf),0,(struct sockaddr *)&address,sizeof(address));
printf(
"Sent: %s, err:%d\n", buf,err); // err>0时,为发送字节数
}

}
}
WSACleanup();
/* clean up before exit */
exit(
0);
}
原文地址:https://www.cnblogs.com/resound/p/1817905.html