📄 client.cpp
字号:
#include "ace/OS.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Connector.h"
#include "ace/SOCK_Dgram.h"
#include "ace/Message_Block.h"
#include "ace/Thread_Manager.h"
#include "ace/INET_Addr.h"
#include "Constants.h"
#include "Client.h"
namespace ACE_Client
{
Client::Client(char *server)
{
addr = ACE_INET_Addr(SERVER_PORT_NUM, server);
}
int Client::svc(void)
{
//TCP
//ACE_SOCK_Stream stream;
//ACE_SOCK_Connector connector;
//if(connector.connect(stream, addr) < 0)
//{
// return -1;
//}
//else
//{
// while(1)
// {
// ACE_Message_Block *mb = NULL;
// if(this->getq(mb) == -1)
// {
// break;
// }
// ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t) Sending %s\n"), &(mb->rd_ptr()[4])));
// stream.send_n(mb->rd_ptr(), mb->length());
// mb->release();
// ACE_OS::sleep(TIME_INTERVAL);
// }
//}
//stream.close();
//UDP
ACE_SOCK_Dgram dgram(ACE_INET_Addr((u_short)0));
while(1)
{
ACE_Message_Block *mb = NULL;
if(this->getq(mb) == -1)
{
break;
}
ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%t) Sending %s\n"), &(mb->rd_ptr()[4])));
dgram.send(mb->rd_ptr(), mb->length(), addr);
mb->release();
ACE_OS::sleep(TIME_INTERVAL);
}
return 0;
}
char *Client::put_task(char *msg_t, char *msg_s, size_t msg_len)
{
for(int i = 0; i < 4; i++)
{
msg_t[i] = (char)((msg_len >> (8 * i)) & 0xff);
}
ACE_OS::memcpy(&msg_t[4], msg_s, msg_len);
ACE_Message_Block *mb = NULL;
ACE_NEW_RETURN(mb, ACE_Message_Block(msg_len + 4, ACE_Message_Block::MB_DATA, 0, msg_t), 0);
mb->wr_ptr(msg_len + 4);
this->putq(mb);
return msg_t;
}
void Client::send_tasks(void)
{
this->activate();
ACE_Thread_Manager::instance()->wait();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -