名片小程序网络通信

UPD Socket-基本用法

2017-10-25  本文已影响1人  NiceBlueChai

UDP 是User Datagram Protocol的简称,
中文名是用户数据报协议

适用于局域网的主机通信
客户机-服务器系统(Client-Sever system)

使用方法

OS_SocketAdder local("127.0.0.1",9000);
OS_UdpSocket sock;
sock.open(lock,true);
OS_SocketAdder peer;
sock.SendTo(buf,n,peer);

示例代码

//发送
#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;
}

❤️


上一篇 下一篇

猜你喜欢

热点阅读