最简单的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 );
}

 

你可能感兴趣的:(UDP)