使用winsock+UDP写的一个简单接收端程序
2010-11-25 09:39
459 查看
本文原创,如转发,请标注原文链接地址:http://blog.csdn.net/Microsues/archive/2010/11/25/6033914.aspx
发表时间:2010-11-26 09:35:40
本程序使用VS2008编写,代码如下:
发表时间:2010-11-26 09:35:40
本程序使用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写的一个简单发送端程序(转)
- 使用UDP协议编写一个网络程序,设置接收端程序监听端口为8001,发送端发送的数据是“hello world”
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 使用UDP实现一个简单的聊天程序。
- 使用TCP+winsock写的一个简单客户端程序(转)
- lesson 11:. 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 使用TCP+winsock写的一个简单客户端程序
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”
- (原创)如何使用boost.asio写一个简单的通信程序(一)
- Singleton单例模式是最简单的设计模式,它的主要作用是保证在程序执行生命周期中,使用了单类模式的类仅仅能有一个实例对象存在。
- 使用timer控件创建一个简单的报警程序
- 使用ASP.NET MVC2+PDF.NET 构建一个简单的新闻管理程序
- 使用CMakeLists.txt创建一个简单的opengl程序
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。