UPD Socket-基本用法
2017-10-25 本文已影响1人
NiceBlueChai
UDP 是User Datagram Protocol的简称,
中文名是用户数据报协议
适用于局域网的主机通信
客户机-服务器系统(Client-Sever system)
使用方法
- 创建socket
OS_SocketAdder local("127.0.0.1",9000);
OS_UdpSocket sock;
sock.open(lock,true);
- 发送
OS_SocketAdder peer;
sock.SendTo(buf,n,peer);
-
销毁socket
sock.Close()
示例代码
//发送
#define _CRT_SECURE_NO_WARNINGS /* VS2013,2015需要这一行 */
#include <stdio.h>
#include <string.h>
#include "osapi/osapi.h"
int main()
{
printf("发送方: port=9000 ...\n");
OS_SockAddr local("127.0.0.1", 9000);
OS_UdpSocket sock;
sock.Open(local, true);
while (1)
{
// 让用户输入一段文本
char buf[128];
printf("> ");
gets_s(buf);
}
}
int n = strlen(buf);
// 发送
//OS_SockAddr peer("192.168.71.129", 9001); // 对方地址
//OS_SockAddr peer("192.168.71.1", 9001); // 对方地址
OS_SockAddr peer("127.0.0.1", 9001); // 对方地址
sock.SendTo(buf, n, peer);
// 结束
if (strcmp("bye", buf) == 0)
{
break;
}
}
// 关闭socket
sock.Close();
return 0;
}
//接收
#include<stdio.h>
#include"osapi/osapi.h"
/*
HOST_A发送方
*/
int main()
{
printf("接收方:9001...\n");
OS_SockAddr local("127.0.0.1", 9001);//本地IP和端口
OS_UdpSocket socket;
socket.Open(local, true);
while (1)
{
char buf[128];
OS_SockAddr peer;//发送方IP和端口
int n=socket.RecvFrom(buf, 128, peer);//接收消息
if(n<=0)
{
break;
}
buf[n] = 0;
printf("Got: %s \n", buf);
//结束
if (strcmp(buf, "bye") == 0)
{
break;
}
}
//关闭socket
socket.Close();
return 0;
}
❤️