首页 > 代码库 > ACE Proactor UDP (接收什么就打印什么)1.0
ACE Proactor UDP (接收什么就打印什么)1.0
普通的UDP组件发送和接收
接收端
//server.cpp #include <ace/SOCK_Dgram.h> #include <ace/INET_Addr.h> #include <ace/Time_Value.h> #include <string> #include <iostream> using namespace std; #include "boost/lexical_cast.hpp" using namespace boost; void receive() { ACE_INET_Addr port_to_listen(3000); //绑定的端口(本地地址) ACE_SOCK_Dgram peer(port_to_listen); //本地地址藏匿于此,发送的时候除了知道目的地址,也要携带本地地址的(因为UDP没有连接这一说) ACE_INET_Addr remoteAddr; //所连接的远程地址 char buf[100]={0}; int receive_length = peer.recv(buf,100,remoteAddr); //接收消息,获取远程地址信息 if( receive_length != -1) { string received(buf,receive_length); cout<<"server received:["<<received<<"]"<<endl; } } int main(int argc, char *argv[]) { receive(); return 0; }
发送端
#include <ace/SOCK_Dgram.h> #include <ace/INET_Addr.h> #include <ace/Time_Value.h> #include <ace/OS.h> #include <string> #include <iostream> using namespace std; #include "boost/lexical_cast.hpp" using namespace boost; void send(void) { ACE_INET_Addr remoteAddr(3000,"127.0.0.1"); //所连接的远程地址 ACE_INET_Addr local_addr; ACE_SOCK_Dgram peer(local_addr); //本地地址藏匿于此,发送的时候除了知道目的地址,也要携带本地地址的(因为UDP没有连接这一说) string send_str; double i =3.1415926535897932; send_str = lexical_cast<string>(i++).c_str(); int send_length = peer.send(send_str.c_str(),send_str.size(),remoteAddr); //发送消息到目的地址 if (send_length != -1) { cout<<"send "<<send_str<<endl; } } int main(int argc, char *argv[]) { send(); return 0; }
执行接收端之后再执行发送端,执行结果
ACE Proactor UDP (接收什么就打印什么)1.0
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。