コード例 #1
0
ファイル: dc_short_conn.cpp プロジェクト: RivenZoo/revolver
int32_t ShortConnection::connect(const Inet_Addr& src_addr, const Inet_Addr& dst_addr)
{
	CORE_DEBUG("src_addr = " << src_addr << ", TCP connect " << dst_addr );

	//打开一个SOCKET
	if(sock_stream_.open(src_addr, true, false, true) != 0)
	{
		CORE_FATAL("open tcp failed! conn = " << this);
		return -1;
	}

	CORE_DEBUG("sort conection connector ....");

	CSockConnector connector;
	if(connector.connect(sock_stream_, dst_addr) != 0)
	{
		sock_stream_.close();
		CORE_FATAL("connect failed, remote addr = " << dst_addr << ", conn = " << this);
		return -1;
	}

	state_ = SHORT_CONN_CONNECTING;
	CORE_DEBUG("short conn, state = SHORT_CONN_CONNECTING, conn = " << this);

	REACTOR_INSTANCE()->register_handler(this, MASK_WRITE);

	//设置一个连接定时器
	CORE_DEBUG("short conn set connect timer");
	timer_id_ = set_timer(eShort_Connect_Timer, 23 * 1000);

	return 0;
}
コード例 #2
0
ファイル: core_connection.cpp プロジェクト: RivenZoo/revolver
int32_t CConnection::connect(const Inet_Addr& src_addr, const Inet_Addr& dst_addr)
{
	CORE_DEBUG("TCP connect " << dst_addr);

	//打开一个SOCKET
	if(sock_stream_.open(src_addr, true, false, true) != 0)
	{
		CORE_FATAL("open tcp failed! conn = " << this);
		return -1;
	}
	
	//主动方
	conn_name_ = "connect connection";

	CSockConnector connector;
	if(connector.connect(sock_stream_, dst_addr) != 0)
	{
		sock_stream_.close();
		CORE_FATAL("connect failed, remote addr = " << dst_addr << ", conn = " << this);
		return -1;
	}

	state_ = CONN_CONNECTING;
	CORE_DEBUG("CConnection, state = CONN_CONNECTING, conn = " << this);

	//CORE_DEBUG("CConnection, register MASK_WRITE");
	REACTOR_INSTANCE()->register_handler(this, MASK_WRITE);

	//设置一个连接定时器
	CORE_DEBUG("set connect timer");
	timer_id_ = set_timer(eConnect_Timer, 10 * 1000);

	return 0;
}
コード例 #3
0
int main()
{
	// CLIENT

	// zu sendende Nachricht
	char message [MAX_CHARS];

	// Adresse des Servers
	CInetAddr server_addr;
	// lokal
	 server_addr.set(9000, "127.0.0.1");
	// server_addr.set(9000, "172.17.15.191");

	// Klasse zum Verbinden von Client und Server
	CSockConnector client;

	// TCP Client Datenstrom
	CSockStream client_stream;

	// Verbinde Client mit Server
	if (client.connect(client_stream, server_addr, true))
	{
	printf("client successfully connected to server\n");
	} else
	{
	printf("client not successfully connected to server\n");
	// exit
	return 0;
	}
	
	sleep(10);

	// UInt8 sendvar;
	UInt8 sendvar[] = {'a','b'};
	//	printf("enter text: ");
	//	cin >> sendvar;
	printf("client sending 2 bytes to server\n");
	client_stream.write((const UInt8 * ) sendvar,  2);
}