无连接通信
2012-03-07 14:07
260 查看
无连接通信是通过UDP/IP协议完成的。数据的传输利用数据包,即离散信息包。
创建一个简单的接收端应用程序
发送端
简单的发送端程序
因为无连接协议没有连接,所有也不会有对连接的正式关闭和从容关闭。只需要调用closesocket即可释放资源。
int recvfrom( SOCKET s, char FAR* buf, int len, int flags, struct sockaddr FAR* from, int FAR* fromlen ); int WSARecvfrom( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesRecvd, LPDWORD lpFlags, struct sockaddr FAR* lpfrom, LPINT fromlen, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine );
创建一个简单的接收端应用程序
#include<winsock2.h> void main(void) { WSADATA wsaData; SOCKET s; SOCKADDR_IN Recvaddr; SOCKADDR_IN Sendaddr; int port = 5050; char buffer[1024]; int buflen = 1024; int sendaddrsize = sizeof(Sendaddr); WSAStartup(MAKEWORD(2,2), &wsaData); s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); Recvaddr.sin_family = AF_INET; Recvaddr.sin_port = htons(port); Recvaddr.sin_addr.s_addr = htonl(INADDR_ANY); bind(s, (SOCKADDR *)&Recvaddr, sizeof(Recvaddr)); recvfrom(s, buffer, buflen, 0, (SOCKADDR*)&Sendaddr, &sendaddrsize); closesocket(s); WSACleanup(); }
发送端
int sendto( SOCKET s, const char FAR* buf, //发送数据的缓冲区 int len, //指明发送多少字节 int flag, const sockaddr FAR* to, int tolen );
int WSASendto( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesSend, LPDWORD lpFlags, struct sockaddr FAR* lpto, LPINT tolen, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine );
简单的发送端程序
#include <winsock2.h> void main(void) { WSADATA wsaData; SOCKET s; SOCKADDR_IN addr; int port = 5050; char buffer[1024]; int len = 1024; WSAStartup(MAKEWORD(2,2), &wsaData); s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr("123.123.123.123"); sendto(s, buffer, len, 0, (SOCKADDR*)&addr, sizeof(addr)); closesocket(s); WSACleanup(); }
因为无连接协议没有连接,所有也不会有对连接的正式关闭和从容关闭。只需要调用closesocket即可释放资源。
相关文章推荐
- Web 通信 之 长连接、长轮询(long polling)
- Web 通信 之 长连接、长轮询(long polling)
- TCP/IP通信程序设计的丰富多样性(长短连接、同步异步等)
- DB2报错:在对连接的底层socket执行操作期间发生通信错误
- Windows下面向连接的套接字通信
- MeeGo 中间件(middleware) 通信服务 之(一) 连接管理
- 自主研发异步通信框架Minma(支持长连接和短连接)
- Web 通信 之 长连接、长轮询(long polling)
- 【MFC】利用CSOCKET实现连接、简单通信
- Anroid中两台手机连接同一wifi通过socket进行通信
- 网络通信之检测远端连接是否断开连接
- 使用无连接的数据报(UDP)进行通信
- 请问手机通信中基站之间是靠什么通信的,光纤还是无线的?另外互联网连接到用户也有一部分靠基站吗?
- 【通信】TCP建立连接协议是三次握手,而关闭连接却是四次握手
- 虚拟机下运行linux通过nat模式与主机通信、与外网连接
- 建立TCP连接,实现基本通信
- Web通信中长连接、长轮询(long polling)
- Android设备间通信(wifi连接)
- 基于UDT connect连接通信以及文件传输--服务端
- 基于UDT connect连接通信以及文件传输--客户端