本文原创,如转发,请标注原文链接地址: 发表时间:2010-11-26 09:40:59 本程序使用VS2008编写,代码如下: #include <winsock2.h> #include <stdio.h> //在编译采用了WINSOCK2.H的应用程序时,需要链接到WS2_32.LIB库 #pragma comment(lib,"WS2_32.LIB") void main() { WSADATA wsaData; SOCKET SendingSocket; SOCKADDR_IN ReceiverAddr; int Port = 8060; // char SendBuf[1024] = {1}; // int BufLength = 1024; int Ret; //初始化Winsock 2.2版本 if((Ret = WSAStartup(MAKEWORD(2,2),&wsaData)) !=0) { printf("ERROR:WSAStartup failed with %d/n",Ret); return; } //创建一个新的套接字来接收数据报 if((SendingSocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP)) == INVALID_SOCKET) { printf("ERROR:SOCKET failed with %d/n",WSAGetLastError()); WSACleanup(); return; } //建立一个SOCKADDR_IN结构,来识别发送数据报的目的地 ReceiverAddr.sin_family = AF_INET; ReceiverAddr.sin_port = htons(Port); ReceiverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //把一个数据报发送到接收者 if((Ret = sendto(SendingSocket,"hello",5,0,(SOCKADDR *)&ReceiverAddr,sizeof(ReceiverAddr))) == SOCKET_ERROR) { printf("ERROR: sendto failed with error %d/n", WSAGetLastError()); closesocket(SendingSocket); WSACleanup(); return; } //应用程序完成发送数据报后,关闭套接字 closesocket(SendingSocket); //应用程序结束后 ,调用WSACleanup WSACleanup(); }