#include "stdafx.h" #include "ace/ace.h" #include "ace/Log_Msg.h" #include "ace/Sock_Connector.h" #include "ace/Sock_Stream.h" #include "ace/OS.h" /* *向打印服务器发送固定长度的文本内容 *每一次连接成功后,向服务器发送10次固定长度的文本内容 */ class Client { public: Client(char* szHost,int nPort):saAddr(nPort,szHost) { pData = "0123456789"; } //连接到打印服务器 int Connect() { if (scConnector.connect(ssStream,saAddr) == -1) { ACE_ERROR_RETURN((LM_DEBUG,ACE_TEXT("%P|%t"),ACE_TEXT("connection failed")),-1); } else { ACE_DEBUG((LM_DEBUG,ACE_TEXT("%P|%t"),ACE_TEXT("connect to server %s"), saAddr.get_host_name())); } return 0; } //向打印服务器发送10次数据 int Send() { for (int i = 0; i < 10;i++) { ACE_OS::sleep(1); int count = 0; if ((count = ssStream.send_n(pData,ACE_OS::strlen(pData),0) )== -1) { ACE_ERROR_RETURN((LM_ERROR,ACE_TEXT("%P|%t"),ACE_TEXT("send_n")),-1); break; } count = count; } Close(); return 0; } int Close() { if (ssStream.close() == -1) { ACE_ERROR_RETURN((LM_ERROR,ACE_TEXT("%P|%t"),ACE_TEXT("close")),-1); } else return 0; } protected: private: ACE_INET_Addr saAddr; ACE_SOCK_Stream ssStream; ACE_SOCK_Connector scConnector; char* pData; }; int ACE_TMAIN(int argc, ACE_TCHAR* argv[]) { Client client("localhost",27002); client.Connect(); client.Send(); system("pause"); return 0; } 用于连接服务器的测试程序,客户端会向服务器连续发送10次固定长度的文本内容。