首页 > 编程语言 >libhv创建简单udp控制台测试程序

libhv创建简单udp控制台测试程序

时间:2023-08-08 17:34:10浏览次数:41  
标签:udp return cli libhv int hv 测试程序 start client

client:

#include <iostream>
#include "hv/UdpClient.h"
#pragma comment(lib,"hv.lib")

class client
{
public:
	client()
	{
		cli = nullptr;
	}
	~client()
	{
		SAFE_DELETE(cli);
	}
	int send(const std::string& msg)
	{
		return cli->sendto(msg);
	}
	bool start(int port, const char* host)
	{
		cli = new hv::UdpClient;
		int sockfd = cli->createsocket(port, host);
		if (sockfd < 0) return false;
		cli->start();
		return true;
	}
private:
	hv::UdpClient* cli;
};
int main()
{
	client* clie = new client();
	clie->start(8080, "127.0.0.1");
	std::string s;
	std::cin >> s;
	while(getchar())
	{
		clie->send(s);
		std::cin >> s;
	}
}

server:

#include <iostream>
#include "hv/UdpServer.h"
#pragma comment(lib,"hv.lib")

void rev(const hv::SocketChannelPtr& channel, hv::Buffer* buf)
{
	std::cout << (char*)buf->data() << std::endl;
	std::cout << "data size:" << buf->size() << std::endl;
}
class server
{
public:
	server()
	{
		ser = nullptr;
	}
	~server()
	{
		SAFE_DELETE(ser);
	}
	bool start(int port, const char* host)
	{
		ser = new hv::UdpServer;
		int sockfd = ser->createsocket(port, host);
		if (sockfd < 0) return false;
		ser->onMessage = rev;
		ser->start();
		return true;
	}
private:
	hv::UdpServer* ser;
};

int main()
{
	server* se = new server();
	se->start(8080, "127.0.0.1");
	getchar();
}

标签:udp,return,cli,libhv,int,hv,测试程序,start,client
From: https://www.cnblogs.com/horizonhz/p/17614962.html

相关文章

  • TCP三次握手和四次挥手;OSI七层协议有哪七层,每层有哪些;TCP和UDP的区别?UDP用在哪里了?
    TCP三次握手和四次挥手;OSI七层协议有哪七层,每层有哪些;TCP和UDP的区别?UDP用在哪里了?TCP三次握手和四次挥手#tcp协议---》处于osi7层协议的传输层,可靠连接,使用三次握手,四次挥手保证了可靠连接,数据不会丢失三次握手(Three-WayHandshake):-SYN:SYN=1表示要建立连接-ACK:ACK=1......
  • LinuxUDP通讯
    目录前言一、UDP通讯1.UDP通讯概述2.UDP的特点3.UDP的应用二、UDP基本通讯1.socket函数2.bind函数2.1主机字节序和网络字节序2.2点分制十进制转换3.recvfrom接收4.服务端完整代码5.sendto发送函数6.客户端完整代码三、TFTP文件接收程序1.TFTP概述2.TFTP通讯过程3.TFTP客户端四、......
  • udp发送上位机(1)
    发送彩色视频RGB888时,在上位机,通过BGR2BGR565转换为16位数据,再传输时加上行号,在DMA里也要对读出的数据进行高低位的变换,组成RGB565格式如下图所示,在灰度图时将每帧刷新改为了每一行刷新,这是因为在彩色图像时,刷新一帧的时间大于2ms,而灰度时为0.7ms,这就会导致在刷新的时候,新的数据......
  • UDP 编程
    UDP编程#include<sys/socket.h>//可以发送或接收一个长度为0的数据报ssize_trecvfrom(intsockfd,void*buf,size_tnbytes,intflags,//常与recvsendrecvmsgsendmsg配合structsockaddr*from,sockl......
  • nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,
    nps  nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。背景做微......
  • 使用UDP和RDP共享电脑屏幕和声音
    publicpartialclassForm1:Form{privateWasapiLoopbackCapturemic;//音频输入protectedRDPSession_rdpSession=null;publicForm1(){InitializeComponent();}staticThreadreceiveThrea......
  • udp接收上位机编程(2)彩色图像
    由于QT上位机只能接收BGR565的图像格式,且只能显示灰度或者RGB888,所以PL2PS的数据必须要变换位置,并使用cvtColor函数进行转换1voidMainWindow::recieve_dis(intudp_index)2{3Matrecv_img_2(img_h_size,img_w_size,CV_8UC2);4Matrecv_img_3(img_h_size,img_......
  • 009 python socket UDP服务端程序,在pycharm正常运行,生成的exe运行有时候接收不到数据,
    写了一个简单的socket服务端程序,在pycharm中正常,生成exe后运行,有时候接收不到数据。经过半天折腾,发现,只要按一下回车,程序又能正常运行了。最终发现,是因为控制台的快速编辑功能打开导致程序假死。在控制台程序的菜单栏右键点击--->默认值--->去掉“快速编辑模式”和“插入模式”......
  • linux 4 网络基础 POLL EPOLL epoll堆 线程池 udp 本地套接字
    Linux5day1.poll监听poll相对与sellect的优缺点优点:没有文件描述符1024的限制请求和返回是分离的如:selectread集合返回read集合缺点和select一样:每次都需要将需要监听的文件描述符从应用层拷贝到内核每次都需要将数组中的元素遍历一遍才知道那个变化了大量并发,少......
  • v831-T113-c-udp发送篇
    又来分析udp,目标是从v831中获取到的图片信息发送给t113然后再屏幕上显示出来挫折一t113作为服务端,再接收到客户端发来的数据后会自动设置clinetaddr,那么我们就不再需要取从新aton这个ip地址了,直接使用clientaddrintudp_send(void){ //if(0==inet_aton("192.168.1.118",......