当前位置: 首页>>代码示例>>C++>>正文


C++ TcpSocket::connect方法代码示例

本文整理汇总了C++中TcpSocket::connect方法的典型用法代码示例。如果您正苦于以下问题:C++ TcpSocket::connect方法的具体用法?C++ TcpSocket::connect怎么用?C++ TcpSocket::connect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TcpSocket的用法示例。


在下文中一共展示了TcpSocket::connect方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: tcpSocketTest

bool SocketTest::tcpSocketTest()
{
    SimpleServer server;
    server.start();
    System::Sleep(500);
    TEST_ASSERT(server.start_flag)
    TEST_ASSERT_MSG(server.bind_flag, server.msg.text())
    TEST_ASSERT_MSG(!server.aborted, server.msg.text())
    // create tcp socket
    TcpSocket client;
    client.connect(TCP_TEST_HOST, TCP_TEST_PORT);
    TEST_ASSERT(client.getRemoteAddress().getPort() == TCP_TEST_PORT);
    client.send(TEST_MESSAGE1);
    TEST_ASSERT_MSG(!server.aborted, server.msg.text())
    System::Sleep(100);
    TEST_ASSERT_MSG(!server.aborted, server.msg.text())    
    TEST_ASSERT(server.msg1_flag)
    // test if something is already running on a port
    Socket psocket;
    TEST_THROWS(psocket.bind(TCP_TEST_PORT), Net::Errors::SocketException);
    
    String in;
    client.readUntil(in, '!');
    TEST_ASSERT(in == TEST_MESSAGE2);
    client.readUntil(in, '.', 2000);
    TEST_ASSERT_MSG(in == TEST_MESSAGE3, in.text());
    client.readUntil(in, '!', 2000);
    TEST_ASSERT(in == TEST_MESSAGE4);
    client.readUntil(in, "#@", 2000);
    TEST_ASSERT(in == TEST_MESSAGE5);
    return true;
}
开发者ID:311labs,项目名称:SRL,代码行数:32,代码来源:SocketTest.cpp

示例2: readLinesFromClientTest

bool readLinesFromClientTest(const int linesize=TcpSocket::DEFAULT_MAX_MSG){
    cout << "Starting readLinesFromClientTest(" << linesize << ") ...\n";
    string message("Passaro verde abandona ninho. \nEscuto!\n");

    pid_t child;
    // client code
    if ((child=fork())==0){
        try {
            TcpSocket toServer;
            cout << "  Forked child waiting a bit\n";
            sleep(1);
            cout << "  Forked child connecting to server\n";
            toServer.connect("127.0.0.1",LOCALPORT);
            cout << "  Forked child connected: " << toServer << endl;
            cout << "  Forked child sending to server\n";
            toServer.writeline(message);
            cout << "  Forked child closing connection to server\n";
            toServer.close();
            cout << "  Forked child exiting\n";
            exit(0);
        } catch (std::exception& e) {
            cout << "  Forked child exception: " << e.what() << endl;
            exit(-1);
        }
        return false; // for clarity
    }

    // server code
    TcpSocket* connectedSocket;
    try {
        TcpSocket serverSocket;
        connectedSocket = bindListenAccept(LOCALPORT, serverSocket);
        std::string clientmessage;
        cout << "  Reading one (at most " << linesize << " chars long) line from client\n";

        // Read a line
        connectedSocket->setMaxReceive(linesize);
        while ((*connectedSocket) >> clientmessage);
        if (clientmessage.empty())
            throw std::runtime_error("clinet message is empty");

        cout << "  Read: \"" << clientmessage << "\"\n";
        if (!(clientmessage.compare(message) == 0)){
            
            throw std::runtime_error("Messages dont match");
        }
        checkChild(child);
        serverSocket.close();
        connectedSocket->close();
        cout << "Done!\n";
        delete connectedSocket;
        return true;
    } catch (std::exception& e) {
        cout << "  Server exception: " << e.what() << endl;
        cout << "Failed!\n";
        checkChild(child, true);
        delete connectedSocket;
        return false;
    }
}
开发者ID:joaotavora,项目名称:minns,代码行数:60,代码来源:TcpSocketUnit.cpp

示例3: client

void client()
{
	TcpSocket socket;
	Socket::Status status = socket.connect(IpAddress::getLocalAddress(), DH_PORT);
	
	if (status != Socket::Status::Done)
	{
		perror("connection to server failed");
		return;
	}
	
	mpz_t secret;
	CurveRef curve = client_receive_curve(socket);
	PointRef p = client_create_key(socket, curve, secret);
	client_send_key(socket, p);
	PointRef remoteKey = client_receive_key(socket);
	PointRef sharedSecret = PointCreateMultiple(remoteKey, secret, curve);
	
	char *desc = PointCreateDescription(sharedSecret);
	cout << "Secret: " << desc << endl;
    free(desc);
	
    mpz_clear(secret);
    CurveDestroy(curve);
    PointDestroy(p);
    PointDestroy(remoteKey);
    PointDestroy(sharedSecret);
	
	socket.disconnect();
}
开发者ID:Ceylo,项目名称:CryptoA5,代码行数:30,代码来源:client.cpp

示例4: run

        void run()
        {
            TcpSocket socket;
            socket.connect("127.0.0.1", mPort);

            T::Send(socket, mValue);
        }
开发者ID:afrueh,项目名称:capu,代码行数:7,代码来源:TcpSocketInputStreamTest.cpp

示例5: c_communication

void c_communication(c_serveur& sett)
{
    TcpSocket svr;
    svr.connect(sett.c_ip,55001);
    c_infoPlayer<<c_pseudo;
    svr.send(c_infoPlayer);



    cout<<"Communication lancee"<<endl;
    while(c_connected)
        {
            c_attendre.lock();
            svr.send(c_sortant);
            c_sortant.clear();
            c_sortant<<false<<"";
            c_attendre.unlock();
            bool a;
            string b;
            if(svr.receive(c_entrant) == Socket::Done)
            {
                //system("cls");
                c_entrant>>a>>b;
                if(!a)
                c_msgsRecus = b;

            }
            else
            {
开发者ID:Gthebeast,项目名称:Bac_a_sable_SFML2,代码行数:29,代码来源:client.cpp

示例6: sendReceiveObjectTest

bool sendReceiveObjectTest(){
    cout << "sendReceiveObjectTest() ...\n";

    Object tosend('c', 34, true, "cinco");

    pid_t child;
    // client code
    if ((child=fork())==0){
        try {
            TcpSocket toServer;
            cout << "  Forked child waiting a bit\n";
            sleep(1);
            cout << "  Forked child connecting to server\n";
            toServer.connect("127.0.0.1",LOCALPORT);
            cout << "  Forked child connected: " << toServer << endl;
            cout << "  Forked child sending to server\n";
            toServer.write(reinterpret_cast<char *>(&tosend), sizeof(Object));
            cout << "  Forked child closing connection to server\n";
            toServer.close();
            cout << "  Forked child exiting\n";
            exit(0);
        } catch (std::exception& e) {
            cout << "  Forked child exception: " << e.what() << endl;
            exit(-1);
        }
        return false; // for clarity
    }
    // server code
    TcpSocket* connectedSocket;
    try {
        TcpSocket serverSocket;
        connectedSocket = bindListenAccept(LOCALPORT, serverSocket);
        std::string clientmessage;
        cout << "  Reading one object from client\n";

        // Read the object
        Object received;
        int len = connectedSocket->read(reinterpret_cast<char *>(&received), sizeof(Object));
        cout << "  Read: " << len << " bytes from " << *connectedSocket << endl;
        if (!(tosend.compare(received) == 0))
            throw std::runtime_error("objects dont match");
        cout << "  Server read " << received << endl;
        
        checkChild(child);
        serverSocket.close();
        connectedSocket->close();
        cout << "Done!\n";
        delete connectedSocket;
        return true;
    } catch (std::exception& e) {
        cout << "  Server exception: " << e.what() << endl;
        cout << "Failed!\n";
        checkChild(child, true);
        delete connectedSocket;
        return false;
    }
}
开发者ID:joaotavora,项目名称:minns,代码行数:57,代码来源:TcpSocketUnit.cpp

示例7: main

int main()
{

	socket.receive(recvChar, 1024, received);
	cout << recvChar << endl;

	Socket::Status status = socket.connect("localhost", 10006);
	socket.send(sendChar, 1024);

	return 0;
}
开发者ID:Treache,项目名称:TanksGod,代码行数:11,代码来源:main.cpp

示例8: main

int main(void) {
    TcpSocket servSocket;
    servSocket.create();
    servSocket.connect("127.0.0.1", 9999);
    Message msg;
    msg.add("type", "login");
    msg.add("user", "root");
    msg.add("pwd", "root");

    servSocket << msg;

    servSocket.close();
    return 0;
}
开发者ID:CyberLuc,项目名称:Simple_Instant_Messenger_Server,代码行数:14,代码来源:test_client.cpp

示例9: own_thread

void Client::own_thread()
{
    TcpSocket sock;
    sock.connect( m_host, m_port );

    unsigned int version = 1;
    unsigned int options = 0;

    sock.send( version );
    sock.send( options );
    // first send size of name.
    sock.sendString( m_name );

    unsigned int images = 0;
    unsigned int width = 0;
    unsigned int height = 0;
    unsigned int bpp = 0;
    try
    {
        sock.receive( images );
        sock.receive( width );
        sock.receive( height );
        sock.receive( bpp );
    } catch( std::string a_error )
    {
        std::cerr << a_error << std::endl;
        return ;
    }
    std::cout << "DEBUG: " << "images: " << images << " w: " << width << " h: " << height << " bpp: " << bpp << std::endl;

    std::unique_ptr< sepia::Writer > data = std::unique_ptr< sepia::Writer >( new sepia::Writer( m_name, images, width, height, bpp ) );


    int more = 0; // more data available if true.
    while( !m_terminate )
    {
        for( int i = 0; i < data->getGroupHeader()->count; i++ )
        {
            sock.receive( *data->getHeader( i ) );
            sock.receive( data->getAddress( i ), data->getSize( i ) );
        }
        data->update();
    }
}
开发者ID:SorcererX,项目名称:SepiaStream,代码行数:44,代码来源:client.cpp

示例10: simpleAcceptConnectTest

bool simpleAcceptConnectTest(){
    cout << "Starting simpleAcceptConnectTest() ...\n";
    pid_t child;
    // client code
    if ((child=fork())==0){
        try {
            TcpSocket toServer;
            cout << "  Forked child waiting a bit\n";
            sleep(1);
            cout << "  Forked child connecting to server\n";
            toServer.connect("127.0.0.1",LOCALPORT);
            cout << "  Forked child connected: " << toServer << endl;
            cout << "  Forked child closing connection to server\n";
            toServer.close();
            cout << "  Forked child exiting\n";
            exit(0);
        } catch (TcpSocket::SocketException& e) {
            cout << "  Forked child exception: " << e.what() << endl;
            exit(-1);
        }
        return false; // for clarity
    }
    // server code
    TcpSocket* toClient;
    try {
        TcpSocket serverSocket;
        toClient = bindListenAccept(LOCALPORT, serverSocket);
        cout << "  Server closing connection to client\n";
        toClient->close();
        cout << "  Server closing listening socket\n";
        serverSocket.close();
        checkChild(child);
        cout << "Done!\n";
        delete toClient;
        return true;
    } catch (std::exception& e) {
        cout << "  Server exception: " << e.what() << endl;
        cout << "Failed!\n";
        checkChild(child, true);
        delete toClient;
        return false;
    }
}
开发者ID:joaotavora,项目名称:minns,代码行数:43,代码来源:TcpSocketUnit.cpp

示例11: main

int main()
{

	Socket::Status status = socket.connect("localhost", 10004);
	socket.send(sendChar, 1024);

	buidMap();

	/////build threads
	Thread sendrecvThread(&sendRecv);
	Thread mainGameThread(&mainGame);
	Thread pressButtonThread(&pressButton);

	/////launch threads
	sendrecvThread.launch();
	pressButtonThread.launch();
	mainGameThread.launch();
	/////////////////////////////////////
	return 0;
}
开发者ID:Treache,项目名称:TanksGod,代码行数:20,代码来源:main001.cpp

示例12: run

bool RedisProxy::run(const HostAddress& addr)
{
    if (isRunning()) {
        return false;
    }

    if (m_vipEnabled) {
        TcpSocket sock = TcpSocket::createTcpSocket();
        Logger::log(Logger::Message, "connect to vip address(%s:%d)...", m_vipAddress, addr.port());
        if (!sock.connect(HostAddress(m_vipAddress, addr.port()))) {
            Logger::log(Logger::Message, "set VIP [%s,%s]...", m_vipName, m_vipAddress);
            int ret = NonPortable::setVipAddress(m_vipName, m_vipAddress, 0);
            Logger::log(Logger::Message, "set_vip_address return %d", ret);
        } else {
            m_vipSocket = sock;
            m_vipEvent.set(eventLoop(), sock.socket(), EV_READ, vipHandler, this);
            m_vipEvent.active();
        }
    }


    m_monitor->proxyStarted(this);
    Logger::log(Logger::Message, "Start the %s on port %d", APP_NAME, addr.port());

    RedisCommand cmds[] = {
        {"HASHMAPPING", 11, -1, onHashMapping, NULL},
        {"ADDKEYMAPPING", 13, -1, onAddKeyMapping, NULL},
        {"DELKEYMAPPING", 13, -1, onDelKeyMapping, NULL},
        {"SHOWMAPPING", 11, -1, onShowMapping, NULL},
        {"POOLINFO", 8, -1, onPoolInfo, NULL},
        {"SHUTDOWN", 8, -1, onShutDown, this}
    };
    RedisCommandTable::instance()->registerCommand(cmds, sizeof(cmds)/sizeof(RedisCommand));

    return TcpServer::run(addr);
}
开发者ID:DataNuts,项目名称:onecache,代码行数:36,代码来源:redisproxy.cpp

示例13: sendMail

bool SmtpClient::sendMail(Url* url, Mail* mail)
{
   bool rval = false;

   // ensure mail has recipients
   if(mail->getRecipients()->length() == 0)
   {
      ExceptionRef e = new Exception(
         "No mail recipients specified.",
         "monarch.mail.NoMailRecipients");
      e->getDetails()["sender"] =
         mail->getSender()["smtpEncoding"]->getString();
      e->getDetails()["subject"] =
         mail->getMessage()["headers"]["Subject"]->getString();
      Exception::set(e);
   }
   else
   {
      // connect, use 30 second timeouts
      TcpSocket s;
      s.setReceiveTimeout(30000);
      Exception::clear();
      InternetAddress address(url->getHost().c_str(), url->getPort());
      if(Exception::isSet())
      {
         ExceptionRef e = new Exception(
            "Failed to setup SMTP host address.",
            "monarch.mail.SmtpAddressLookupFailure");
         e->getDetails()["host"] = url->getHost().c_str();
         e->getDetails()["port"] = url->getPort();
         Exception::push(e);
         rval = false;
      }
      else if(s.connect(&address, 30))
      {
         // create smtp connection
         Connection c(&s, false);

         // send mail
         rval = sendMail(&c, mail);

         // disconnect
         c.close();

         if(!rval)
         {
            ExceptionRef e = new Exception(
               "Failed to send mail.",
               "monarch.mail.MailSendFailed");
            e->getDetails()["host"] = url->getHost().c_str();
            e->getDetails()["port"] = url->getPort();
            Exception::push(e);
         }
      }
      else
      {
         ExceptionRef e = new Exception(
            "Failed to connect to SMTP host.",
            "monarch.mail.SmtpConnectionFailure");
         e->getDetails()["host"] = url->getHost().c_str();
         e->getDetails()["port"] = url->getPort();
         Exception::push(e);
         rval = false;
      }
   }

   return rval;
}
开发者ID:bsletten,项目名称:monarch,代码行数:68,代码来源:SmtpClient.cpp


注:本文中的TcpSocket::connect方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。