使用winsock+UDP写的一个简单接收端程序(转)
来源:互联网 发布:python开发环境下载 编辑:程序博客网 时间:2024/05/29 09:08
本程序使用VS2008编写,代码如下:
- //先打开服务器端,服务器在执行完recvfrom()后堵塞,等待接收数据...
- #include <winsock2.h>
- #include <stdio.h>
- #pragma comment(lib,"WS2_32.LIB")
- void main()
- {
- WSADATA wsaData;
- SOCKET ReceivingSocket;
- SOCKADDR_IN ReceiverAddr;
- int Port = 8060;
- char ReceiveBuf[1024] = {0};
- int BufLength = 1024;
- SOCKADDR_IN SenderAddr;
- int SenderAddrSize = sizeof(SenderAddr);
- int Ret;
- //初始化Winsock 2.2版本
- if((Ret = WSAStartup(MAKEWORD(2,2),&wsaData)) !=0)
- {
- printf("ERROR:WSAStartup failed with %d/n",Ret);
- return;
- }
- //创建一个新的套接字来接收数据报
- if((ReceivingSocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP)) == INVALID_SOCKET)
- {
- printf("ERROR:SOCKET failed with %d/n",WSAGetLastError());
- WSACleanup();
- return;
- }
- //建立一个SOCKDDR_IN结构,这个结构将告知bind我们想要使用5150端口接收来自
- //所有接口的数据报
- ReceiverAddr.sin_family = AF_INET;
- ReceiverAddr.sin_port = htons(Port);
- ReceiverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
- //使用bind将这个地址信息和套接字关联起来
- if((bind(ReceivingSocket,(SOCKADDR*)&ReceiverAddr,sizeof(ReceiverAddr))) == SOCKET_ERROR)
- {
- printf("ERROR:bind failed with %d/n",WSAGetLastError());
- closesocket(ReceivingSocket);
- WSACleanup();
- return;
- }
- ////先打开服务器端,服务器在执行完recvfrom()后堵塞,等待接收数据...
- printf("wait to receive data.../n");
- if((Ret = recvfrom(ReceivingSocket,ReceiveBuf,BufLength,0,(SOCKADDR *)&SenderAddr,&SenderAddrSize))
- == SOCKET_ERROR)
- {
- printf("ERROR: recvfrom failed with error %d/n", WSAGetLastError());
- closesocket(ReceivingSocket);
- WSACleanup();
- return;
- }
- printf("We successfully received %d bytes from address %s:%d./n", Ret,
- inet_ntoa(SenderAddr.sin_addr), ntohs(SenderAddr.sin_port));
- for(int id=0; id<5 ; ++id)
- printf("%c",ReceiveBuf[id]);
- //应用程序结束接收数据报后,关闭套接字
- closesocket(ReceivingSocket);
- //应用程序结束后,调用WSACleanup
- WSACleanup();
- }
- 使用winsock+UDP写的一个简单接收端程序
- 使用winsock+UDP写的一个简单接收端程序(转)
- 使用winsock+UDP写的一个简单发送端程序
- 使用winsock+UDP写的一个简单发送端程序(转)
- 使用TCP+winsock写的一个简单服务器程序(转)
- 使用TCP+winsock写的一个简单客户端程序(转)
- 使用TCP+winsock写的一个简单服务器程序
- 使用TCP+winsock写的一个简单客户端程序
- 一个简单的UDP接收例子
- 用C++写一个UDP发送和接收程序
- 用C++写一个UDP发送和接收程序
- 使用JNI写一个简单的程序
- 使用Winsock的简单服务器端程序
- 本程序说明了如何建立一个简单的可以接收UDP服务器数据的UDP客户端
- 使用JAVA线程写的一个UDP简易通讯程序(三)
- 使用UDP实现一个简单的聊天程序。
- 用pascal写的最简单的winsock程序
- 用pascal写的最简单的winsock程序
- Python的主(main)函数问题
- cakephp run shell command line
- 在 ActiveReports 中嵌入 Spread 控件
- 使用winsock+UDP写的一个简单发送端程序(转)
- dede 搜索结果 调用 自定义字段
- 使用winsock+UDP写的一个简单接收端程序(转)
- D5D7装在同一电脑上,装同一版本的ehlib出现的问题
- CAN通信笔记--fork调试:set follow-fork-mode [parent|child]
- 堆排序和优先级队列
- chap 13:重载操作符与转换、重载函数的匹配(转)
- 两个表左连接取数只取一行
- 最近研究了一些东西,抽空该整理更新下了!!
- JavaScript 读取、写入Txt文档
- perl hash 常见用法