UDP操作示例

// 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;}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值