UDP与TCP不同,是一种无连接的通信方式,相比TCP而言更加灵活。
利用socket实现UDP的方式相比TCP而言也更加简单。
发送方:
1.初始化套接字
2.创建socket
3.利用sendto发送数据(TCP是send)
4.关闭socket
接收方:
1.初始化套接字
2.创建socket并与本机进行绑定
3.利用recvfrom接收数据
4.关闭socket
有以下两个函数是UDP通信独有的
1.int sendto(SOCKET 发送的套接字,char* 发送的字符串,int 缓冲区长度,int 函数调用方式一般为0,sockaddr* 目标地址结构体指针,int 地址长度)
sendto是UDP专门的数据发送方式,send()用于TCP SOCK_STREAM,sendto()用于UDP SOCK_DGRAM,返回发送字节的数目,失败返回SOCKET_ERROR
2.int recvfrom(SOCKET 接收的socket,char* 接收的字符串,int 缓冲区长度,int 函数调用方式一般为0,sockaddr* 源地址结构体指针,int 地址长度)
UDP发送方程序:
#include "stdafx.h"
#include <winsock2.h>
#include <stdio.h>
#include <string>
#include <iostream>
#pragma comment(lib,"WS2_32.lib")
int main()
{
int retval;
std::string str;
char buf[20];
WSADATA wsa;
SOCKET s;
sockaddr_in add