| 简单写了这样一个东西出来。就是如果修改成 const int BUFSIZE = 8192;
 
 unsigned   char   *buffer =   new   unsigned   char(BUFSIZE);
 
 的话是不是我就要把
 peer_stream_e .recv( (void*)str.c_str(), str.length() );
 改成peer_stream_e .recv( buffer,BUFSIZE);
 
 // acerepeator.cpp : 定义控制台应用程序的入口点。
 
 
 #include "stdafx.h"
 
 
 
 // acesimser.cpp : 定义控制台应用程序的入口点。
 //本文件原为echo server 现在将其改装为repeator
 
 #include "stdafx.h"
 
 /*int _tmain(int argc, _TCHAR* argv[])
 {
 return 0;
 }*/
 #include <iostream>
 #include <string>
 #include "ace/ACE.h"
 #include "ace/INET_Addr.h"
 #include "ace/SOCK_Acceptor.h"
 #include "ace/SOCK_Stream.h"
 #include "ace/SOCK_Connector.h"
 using namespace std;
 
 int main( int argc, char* argv[] )
 {
 ACE::init();
 
 //string str("1",1024);
 // str.resize( sizeof( "hoooo world9999" ) );
 string str;
 str.resize( sizeof( "hoooo world999955533322211199988877766555" ) );
 //while( 1 ){
 //设置服务器地址:用于接收来自e 的业务报文
 ACE_INET_Addr peer_addr_e ( 5050, "127.0.0.1" );
 
 ACE_SOCK_Stream peer_stream_e ; //创建被动连接角色对象
 ACE_SOCK_Acceptor peer_acceptor_e ; //开启被动连接对象,将对象绑定到一个地址上
 peer_acceptor_e .open( peer_addr_e  );  //等待连接
 peer_acceptor_e .accept( peer_stream_e  );  //数据通讯
 peer_stream_e .recv( (void*)str.c_str(), str.length() );//接收来自客户端的数据
 cout << "接收到e 客户端的消息 : " << str << endl;
 // peer_stream.send( str.c_str(), str.length() );
 
 
 /*以下代码将此业务报文str发送到t */
 
 ACE_INET_Addr peer_addr_t ( 5051, "127.0.0.1" );
 ACE_SOCK_Stream peer_stream_t ;//定义一个通讯队形
 
 ACE_SOCK_Connector peer_connector_t ;//定义一个主动连接对象
 peer_connector_t .connect( peer_stream_t , peer_addr_t  );//发起一个连接
 
 peer_stream_t .send( str.c_str(), str.length() );//发送数据到服务器
 
 
 cout << "发送到t 的业务报文 : " << str <<endl;
 
 
 
 //}
 ACE::fini();
 
 system("PAUSE");
 return 0;
 }
 
 程序写的很幼稚,大家多提建议,谢谢
 |