// udptest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#pragma comment(lib, "Ws2_32.lib")#include #include #include #include void Useage(){printf("udptest.exe \r\n");printf("\t:计费服务器IP\r\n");printf("\t:局编号\r\n");printf("\t:终端编号\r\n");printf("\t:<需要回复的话单编号>\r\n");return ;}int main(int argc, char* argv[]){ WORD wVersionRequested; WSADATA wsaData; int err;if(argc != 5){Useage();return -1;}int officenumber = atoi(argv[2]);int terminalnumber = atoi(argv[3]);//_ttoi_ttoiint ackbill = atoi(argv[4]);printf(" will send office %d,terminal %d's bill %d ack\r\n",officenumber,terminalnumber,ackbill); wVersionRequested = MAKEWORD(2, 1); err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) { /* Tell the user that we could not find a usable */ /* Winsock DLL. */ printf("WSAStartup failed with error: %d\n", err); return 1; }#if 0 if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { /* Tell the user that we could not find a usable */ /* WinSock DLL. */ printf("Could not find a usable version of Winsock.dll\n"); WSACleanup(); return 1; } else printf("The Winsock 2.2 dll was found okay\n");#endif SOCKET sockClient = socket(AF_INET,SOCK_DGRAM, 0);/**int on = 1;setsockopt(sockClient, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on));SOCKADDR_IN addrClient; addrClient.sin_addr.S_un.S_addr = INADDR_ANY; addrClient.sin_family = AF_INET; addrClient.sin_port = htons(10511);int ret = bind(sockClient,(struct sockaddr*)&addrClient,sizeof(addrClient));if(ret != 0){printf("udp bind port error\r\n");return -2;}*/ SOCKADDR_IN addrServ; addrServ.sin_addr.S_un.S_addr = inet_addr(argv[1]); addrServ.sin_family = AF_INET; addrServ.sin_port = htons(9900);printf("need signal to start sending packet.\r\n");system("PAUSE");for(int i=0;i<10;i++){ int ret = sendto(sockClient,"Hello\n",strlen("Hello\n")+1,0,(SOCKADDR*)&addrServ,sizeof(SOCKADDR));if(ret == SOCKET_ERROR){printf("send the udp packet error.\r\n");}else{printf("send the udp packet is good.\r\n");}Sleep(10);}printf("need signal to close the socket.\r\n");system("PAUSE"); closesocket(sockClient); system("PAUSE"); WSACleanup(); return 0;}
UDP操作示例
最新推荐文章于 2024-08-19 05:00:00 发布