ACE中UDP通信
udp是一种无连接的协议,提供 无连接不可靠 的服务。 在ace中,通过 ACE_SOCK_Dgram 类提供udp通信服务,ACE_SOCK_Dgram和ACE_SOCK_Stream的API非常类似,一样提供了send,recv及close等常用操作,这里就不再累述了。 udp通信时无需像tcp那样建立连接和关闭连接,tcp编程时需要通过accept和connect来建立连接,而udp通信省略了这一步骤,相对来说编程更为简单。 由于udp通信时无建立连接,服务器端不能像Tcp通信那样在建立连接的时候就获得客户端的地址信息,故 服务器端不能主动对客户端发送信息 (不知道客户端的地址),只有等到收到客户端发送的udp信息时才能确定客户端的地址信息,从而进行通信。 udp通信过程如下: 服务器端绑定一固定udp端口,等待接收客户端的通信。 客户端通过服务器的ip和地址信息直接对服务器端发送消息。 服务器端收到客户端发送的消息后获取客户端的ip和端口信息,通过该地址信息和客户端通信。 下面代码为EchoServer的udp版: //server.cpp #include <ace/SOCK_Dgram.h> #include <ace/INET_Addr.h> #include <ace/Time_Value.h> #include <string> #include