コード例 #1
0
ファイル: SocketThread.cpp プロジェクト: yue19870813/src
void SocketThread::start()
{

    char* json = SocketManager::getInstance()->msgVector.front();
    
    TCPSocket *ts = SocketManager::getInstance()->ts;
    
    ts->Create(AF_INET,SOCK_STREAM,0);
    bool iscon=ts->Connect(SocketManager::getInstance()->getAddr(),SocketManager::getInstance()->getPort());
    
    if (iscon)
    {
        int len = strlen(json);
        len = len + 5;
        ByteArray *ba = new ByteArray(len);
        ba->writeInt(strlen(json));
        ba->writeByte(0);
        ba->writeString(json);
        ts->Send(ba->getByteArray(), len);
    } else {
        printf("TCPSOCKET ERROR : connect failed!");
    }
    
    char* buff;
    ts->Recv(buff);

    resposeMsg(buff);
}
コード例 #2
0
ファイル: main.cpp プロジェクト: DanLinder/crisscross
int main(int argc, char * *argv)
{
	console = new Console();

	/* Begin your application here. */
	int cc_err;

	TCPSocket * sock = new TCPSocket();
	console->WriteLine("Connecting...");
	cc_err = sock->Connect("www.example.com", 80);
	if (cc_err == CC_ERR_WOULD_BLOCK)
		console->WriteLine("Non-blocking sockets are enabled. Waiting for connection...");
	while (sock->State() == SOCKET_STATE_CONNECTING) ;
	if (sock->State() != SOCKET_STATE_CONNECTED) {
		console->WriteLine("Connection failed.");
		return 1;
	} else
		console->WriteLine("Connection seems OK.");
	console->Write("Requesting http://www.example.com/... ");
	cc_err = sock->Send("GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n");
	if (cc_err < 1)
		console->WriteLine("Failed.");
	else
		console->WriteLine("OK");

	while (sock->State() == SOCKET_STATE_CONNECTED) {
		string in;
		cc_err = sock->Read(in);
		if (cc_err == 0) {
			console->WriteLine(in);
			break;
		} else {
			if (cc_err != CC_ERR_WOULD_BLOCK)
				console->WriteLine("Read error %d (%s)", cc_err, GetErrorDescription(cc_err));
			System::ThreadSleep(10);
		}
	}

	sock->Close();

	delete sock;

	/* End your application here. */

#ifdef TARGET_OS_WINDOWS
	system("pause");
#endif

	delete console;
	return 0;
}
コード例 #3
0
ファイル: main2.cpp プロジェクト: lumpyh/TCPSocket
int main()
{

	TCPSocket* sock = new TCPSocket();
	sock->setHomeAddr( "127.0.0.1", 8023);
	sock->setRemoteAddr( "127.0.0.1", 8026);
	sock->Connect();

	cout << "accepted" << endl;
	cout << sock->getRemoteAddr()->getIp() << endl;

	while(1);

	delete sock;

	return 0;
}
コード例 #4
0
bool RTHttpSender::ConnHttpHost(const std::string& addr, const unsigned short port, const std::string& host)
{
    SetHttpHost(host);
    TCPSocket* socket = this->GetSocket();
    if (socket->Open() != OS_NoErr) {
        LE("%s socket->Open failed!!!\n", __FUNCTION__);
        return false;
    }
    socket->InitNonBlocking(socket->GetSocketFD());
    socket->NoDelay();
    socket->SetSocketBufSize(96L * 1024L);
    socket->SetTask(this);
    this->SetTimer(5*1000);
    OS_Error err;
    do{
        sleep(1);
        err = socket->Connect(SocketUtils::ConvertStringToAddr(addr.c_str()), port);
        LI("Connect to http server %s:%u, waiting...\n", addr.c_str(), port);
    }while(!(err==OS_NoErr || err==EISCONN));
        
    //socket->RequestEvent(EV_RE);
    LI("%s addr:%s, port:%u\n", __FUNCTION__, addr.c_str(), port);
    return true;
}
コード例 #5
0
ファイル: main.cpp プロジェクト: mmavipc/NoName
int main()
{
	TCPSocket tcpsock;
	GlobalData *gData = new GlobalData("NULL", &tcpsock);
	GeneralHandler ghandler;

	tcpsock.Connect("mmavipc.dyndns.org", 6667);
	std::cout << tcpsock.GetError() << std::endl;
	std::string str;
	std::stringstream cTime;
	cTime << (long long)time(NULL);
	if(!tcpsock.SendData("PASS :test\r\nSERVER services.mmavipc.dyndns.org 0 :NoName Services\r\nEOS\r\n"))
	{
		std::cout << "Fatal error: " << tcpsock.GetError();
	}
	GenericBot lolbot("lolbot");
	lolbot.JoinChannel("#lol");
	
	//Never do this, for testing purposes only
	while(true)
	{
		bool result = tcpsock.RecvLine(str);
		if(!result)
		{
			std::cout << "Fatal error: " << tcpsock.GetError();
			break;
		}
		std::cout << result << " " << str << std::endl;
		int spc = FindSpaceCount(str);
		std::string *split = new std::string[spc+1];
		int pos = 0;
		int oldpos = 0;
		for(int i = 0; i < spc+1; i++)
		{
			pos = str.find(' ', pos+1);
			if(i != 0)
			{
				split[i] = str.substr(oldpos+1, pos-oldpos-1);
			}
			else
			{
				split[i] = str.substr(oldpos, pos-oldpos);
			}
			oldpos = pos;
		}
		int params = 0;
		for(int i = 1; i < spc+1; i++)
		{
			if(split[i].substr(0, 1) == ":")
			{
				params = i+1;
				split[i] = split[i].substr(1, split[i].length()-1);
				for(int j = i+1; j < spc+1; j++)
				{
					split[i] += " " + split[j];
				}
				break;
			}
		}
		ghandler.Handle(split, params);
		delete [] split;
		str = "";
	}
	std::cin.ignore(10000, '\n');
}