Esempio n. 1
0
int main(int argc, char **argv)
{
	Preferences::Instance()->SetFile("/boot/home/config/settings/RemoteControl.perfs");
	
	args.porti=4321;
	args.ports=4322;
	args.passwd=0;
	
	parse(argc, argv);
	
	MyApp *app=new MyApp();
	
	int32 socki=CreateSocket(args.porti);
	int32 socks=CreateSocket(args.ports);
	
	if((socki<0) || (socks<0))
		return 1;
	
	new InputListener (socki, args.passwd);
	new ScreenListener(socks, args.passwd);
	
	app->Run();
	
	return 0;
}
Esempio n. 2
0
void UdpSocket::CreateConnection()
{
#ifdef ENABLE_IPV6
#ifdef IPPROTO_IPV6
	if (IsIpv6())
	{
		if (GetSocket() == INVALID_SOCKET)
		{
			SOCKET s = CreateSocket(AF_INET6, SOCK_DGRAM, "udp");
			if (s == INVALID_SOCKET)
			{
				return;
			}
			SetNonblocking(true, s);
			Attach(s);
		}
		return;
	}
#endif
#endif
	if (GetSocket() == INVALID_SOCKET)
	{
		SOCKET s = CreateSocket(AF_INET, SOCK_DGRAM, "udp");
		if (s == INVALID_SOCKET)
		{
			return;
		}
		SetNonblocking(true, s);
		Attach(s);
	}
}
Esempio n. 3
0
int EgSock::Connect(const char* ip, uint16_t port, function<void(sp_EgSock)> callback) 
{
	_fd = CreateSocket();
	SetNonblock(fd);
	SetNodelay(fd);

	_peer_ip = ip;
	_port = port;
	_state = EG_SOCK_CONNECTING;
	_callback = callback;

	sockaddr_in serv_addr;
	SetAddr(ip, port,  &serv_addr);
	if (connect(_fd, (sockaddr*)&serv_addr, sizeof(serv_addr)) == SOCKET_ERROR) {
		if (!((errno == EINPROGRESS) || (errno == EWOULDBLOCK))) {
			loge("connect failed, err_code=%d", errno);
			close(_fd);
			throw egex("connect failed, errno=%d", errno);
		}
	} else {
		_state = EG_SOCK_CONNECTED;
		callback(shared_from_this());
	}
	return _fd;
}
Esempio n. 4
0
int CLS_TCPSvr::Listen()
{
    char *strIP;

    if(m_iStatus==SS_UNUSED)
        if(CreateSocket()<0)
            return -1;

    if(m_iStatus!=SS_LISTEN)
    {
        if(m_iStatus!=SS_BOUND)
            if(Bind()<0)
                return -2;

        if (listen(m_iSocket, 5)<0) 
        {
            CloseSocket();
            return -3;
        }

        if(!m_iLocalPort)
        {
            strIP=GetLocalHost(&m_iLocalPort);
            if(strIP)
                strcpy(m_strLocalIP, strIP);
        }

        m_iStatus=SS_LISTEN;
    }

    return 0;
}
Esempio n. 5
0
//  Write a socket
wxInt32 BufferedSocket::SendData(const wxInt32 &Timeout)
{   
    wxInt32 BytesSent;
    
    if (CreateSocket() == false)
        return 0;

    // clear it
    memset(m_SendBuffer, 0, MAX_PAYLOAD);
    
    // copy data
    size_t WrittenSize = m_SendBufferHandler->CopyTo(m_SendBuffer, 
                                                      MAX_PAYLOAD);

    // Creation of this will start the stop watch
    wxStopWatch sw;
                
    // send the data
    BytesSent = send(m_Socket, (const char *)m_SendBuffer, WrittenSize, 0);

    // set the start ping
    m_SendPing = sw.Time();
    
    CheckError();    
        
    // return the amount of bytes sent
    return BytesSent;
}
Esempio n. 6
0
nsresult
KeyStoreConnector::CreateListenSocket(struct sockaddr* aAddress,
                                      socklen_t* aAddressLength,
                                      int& aListenFd)
{
  ScopedClose fd;

  nsresult rv = CreateSocket(fd.rwget());
  if (NS_FAILED(rv)) {
    return rv;
  }
  rv = SetSocketFlags(fd);
  if (NS_FAILED(rv)) {
    return rv;
  }
  if (aAddress && aAddressLength) {
    rv = CreateAddress(*aAddress, *aAddressLength);
    if (NS_FAILED(rv)) {
      return rv;
    }
  }

  // Allow access for wpa_supplicant (different user, different group)
  //
  // TODO: Improve this by setting specific user/group for
  //       wpa_supplicant by calling |fchmod| and |fchown|.
  //
  chmod(KEYSTORE_SOCKET_PATH, S_IRUSR|S_IWUSR|
                              S_IRGRP|S_IWGRP|
                              S_IROTH|S_IWOTH);

  aListenFd = fd.forget();

  return NS_OK;
}
Esempio n. 7
0
int Client::Run(const char* pIP, unsigned short uPort, const char * pFileName)
{
    int iRet = 0;
    if (pIP == NULL)
    {
        iRet = -1;
        return iRet;
    }
    memccpy(m_sIPAddress, pIP, 0, sizeof(m_sIPAddress) - 1);
    m_sIPAddress[sizeof(m_sIPAddress) - 1] = 0;
    m_uPort = uPort;
    if (pFileName != NULL) {
        m_RequireType = 2; //File
        memccpy(m_sFilename, pFileName, 0, sizeof(m_sFilename) - 1);
        m_sFilename[sizeof(m_sFilename) - 1] = 0;
    }
    else
    {
        m_RequireType = 1; //DIR
    }

    CreateSocket();
    ConnectSocket();
    return iRet;
}
Esempio n. 8
0
DWORD CEgTcpDriver::CreateAcceptSocket(BOOL bBindIocp)
{
    DWORD       dwRecvNumBytes = 0;     
	DWORD		dwRes;

    if (bBindIocp)
    {
		m_ListenSocketContext.m_ConnectioID.m_Socket = m_ListenSocket;
		m_ListenSocketContext.m_pIOContext.m_IoOperation = ClientIoAccept;
        dwRes = BindCompletionPort(m_ListenSocketContext);
        if (dwRes != 0)
            return dwRes;
    }

    m_ListenSocketContext.m_pIOContext.m_SocketAccept = CreateSocket();
    if (INVALID_SOCKET == m_ListenSocketContext.m_pIOContext.m_SocketAccept)
        return WSAGetLastError();

    int nRet = AcceptEx(
            m_ListenSocket, 
            m_ListenSocketContext.m_pIOContext.m_SocketAccept,
            (LPVOID)(m_ListenSocketContext.m_pIOContext.m_ReceiveBuffer.buf),
            0,
            sizeof(SOCKADDR_IN) + 16,
            sizeof(SOCKADDR_IN) + 16,
            &dwRecvNumBytes,
            (LPOVERLAPPED) &(m_ListenSocketContext.m_pIOContext.m_SendOverlapped)
            );
    if (nRet == SOCKET_ERROR && (ERROR_IO_PENDING != WSAGetLastError())) 
		return WSAGetLastError();

	return 0;
}
Esempio n. 9
0
	virtual bool	Bind( const CIPAddr *pAddr )
	{
		if ( !CreateSocket() )
			return false;
    
		return BindPart2( pAddr );
	}
Esempio n. 10
0
DWORD WINAPI CEgTcpDriver::CreateListenSocket()
{
    SOCKADDR_IN si_addrlocal;
    int         nRet;
    LINGER      lingerStruct;

    lingerStruct.l_onoff = 0;
    lingerStruct.l_linger = 0;

    m_ListenSocket = CreateSocket();
    if (INVALID_SOCKET == m_ListenSocket)
        return WSAGetLastError();

    si_addrlocal.sin_family = AF_INET;
    si_addrlocal.sin_port = htons(m_usServerPort);
    si_addrlocal.sin_addr.s_addr = htonl(INADDR_ANY);       
    nRet = bind(m_ListenSocket, (struct sockaddr *)&si_addrlocal, sizeof(si_addrlocal));

    if (SOCKET_ERROR == nRet) 
        return WSAGetLastError();

    nRet = listen(m_ListenSocket, SOMAXCONN);
    if (SOCKET_ERROR == nRet) 
        return WSAGetLastError();
    
	return 0;
}
Esempio n. 11
0
BOOL PortTransfer_1(WORD ListenPort, char *szIP, WORD wPort)
{
 HANDLE hThread;
 DWORD dwThreadId;
 SOCKET AcceptSocket;
 TransferParam<ADDRESS, SOCKET> ConfigInfo;
 _snprintf(ConfigInfo.GlobalData.szIP, ADDRSIZE, "%s", szIP);
 ConfigInfo.GlobalData.wPort = wPort;
 //监听个服务端口,即映射端口
 SOCKET localsockid = CreateSocket(INADDR_ANY, ListenPort);
 if(localsockid <= 0)
 goto error;
 while(1)
 {
  printf("Accepting new Client...");
  AcceptSocket = accept(localsockid, NULL, NULL);
  if(AcceptSocket == INVALID_SOCKET)
   goto error;
  nTimes++;
  printf("OK.\r\n");
  //将接受到的客户请求套接字转到新的线程里处理
  //然后继续等待新的请求
  ConfigInfo.LocalData.Push(AcceptSocket);
  hThread = CreateThread(NULL, 0, PortTransfer_1, (LPVOID)&ConfigInfo, NULL, &dwThreadId);
  if(hThread)
   CloseHandle(hThread);
  else
   Sleep(1000);
 }
error:
 printf("Error.\r\n");
 closesocket(localsockid);
 return false;
}
Esempio n. 12
0
void SocketEngine::sendData(const char* data)
{
    if (m_socket==NULL) {
        CreateSocket();
    }
    
    if (m_socket==NULL) {
        cout<<"Socket创建失败"<<endl;
        return;
    }
    
    try {
    cocos2d::CCLog("send() datas : %s \n\n",data);
    m_socket->SendData(data, strlen(data)+1);
    }catch (SocketException &excep) {

        cout<<"收到参数意外"<<endl;

        cocos2d::CCLog("sendData recvDatas Error: %s \n\n",(const char*)excep);

        return;
    }
    
//    strcpy(outData, data);
    cout<<"开始线程接受Socket数据"<<endl;
    if(pthread_create(&pthead_rec, NULL, reciveData, this)!=0){
        
        //pthead_recx线程标示,reciveData回调函数, m_socket传入的参数
        

        cout<<"创建reciveData失败"<<endl;
        
    }
    
}
Esempio n. 13
0
int UdpSocket::Bind(SocketAddress& ad, int range)
{
	if (GetSocket() == INVALID_SOCKET)
	{
		Attach(CreateSocket(ad.GetFamily(), SOCK_DGRAM, "udp"));
	}
	if (GetSocket() != INVALID_SOCKET)
	{
		SetNonblocking(true);
		int n = bind(GetSocket(), ad, ad);
		int tries = range;
		while (n == -1 && tries--)
		{
			ad.SetPort(ad.GetPort() + 1);
			n = bind(GetSocket(), ad, ad);
		}
		if (n == -1)
		{
			Handler().LogError(this, "bind", Errno, StrError(Errno), LOG_LEVEL_FATAL);
			SetCloseAndDelete();
#ifdef ENABLE_EXCEPTIONS
			throw Exception("bind() failed for UdpSocket, port:range: " + Utility::l2string(ad.GetPort()) + ":" + Utility::l2string(range));
#endif
			return -1;
		}
		m_bind_ok = true;
		m_port = ad.GetPort();
		return 0;
	}
	return -1;
}
Esempio n. 14
0
int 
main(int argc, char *argv[])
{
    if (argc != 3)
    {
        printf("%s serverhost serverport\n", argv[0]);
        exit(0);
    }
    // get the server host info
    //
    int serverport = atoi(argv[2]);
    int err;
    struct hostent hp;
    char buf[1024];
    unsigned long hostAddr = 0;

    if((gethostbyname_r(argv[1], &hp, buf, sizeof(buf), &err) == NULL))
    {
        printf("unable to resolve host address(%s)\n", argv[1]);
        exit(0);
    }
    hostAddr = ((struct in_addr*)hp.h_addr)->s_addr;

    while (1)
    {
        // Create the socket
        //
        CreateSocket(hostAddr, serverport);
    
    }
}
Esempio n. 15
0
int SocketInfo::Create(const std::string& context) const {
    auto types = android::base::Split(type(), "+");
    int flags =
        ((types[0] == "stream" ? SOCK_STREAM : (types[0] == "dgram" ? SOCK_DGRAM : SOCK_SEQPACKET)));
    bool passcred = types.size() > 1 && types[1] == "passcred";
    return CreateSocket(name().c_str(), flags, passcred, perm(), uid(), gid(), context.c_str());
}
Esempio n. 16
0
nsresult
NfcConnector::CreateStreamSocket(struct sockaddr* aAddress,
                                 socklen_t* aAddressLength,
                                 int& aStreamFd)
{
  ScopedClose fd;

  nsresult rv = CreateSocket(fd.rwget());
  if (NS_FAILED(rv)) {
    return rv;
  }
  rv = SetSocketFlags(fd);
  if (NS_FAILED(rv)) {
    return rv;
  }
  if (aAddress && aAddressLength) {
    rv = CreateAddress(*aAddress, *aAddressLength);
    if (NS_FAILED(rv)) {
      return rv;
    }
  }

  aStreamFd = fd.forget();

  return NS_OK;
}
Esempio n. 17
0
		U1 NetServer::Create(){
	
			//创建SOCKET
			if(!CreateSocket())
				return	false;
	
			U16	PORT	=	Converter::ToU16(m_Info.strPort);
	
			// 绑定socket到一个本地地址 
			sockaddr_in sin; 
			sin.sin_family = AF_INET; 
			sin.sin_port = htons(PORT); 
			sin.sin_addr.S_un.S_addr = INADDR_ANY; 
			if (::bind(m_Socket, (LPSOCKADDR)&sin, sizeof(sockaddr_in)) == SOCKET_ERROR) 
			{ 
				OutputDebugStringA("绑定失败\n");
				return	false; 
			}
	
			// 设置socket进入监听状态 
			if (::listen(m_Socket, 10) == SOCKET_ERROR) 
			{ 
				OutputDebugStringA("监听失败\n"); 
				return	false; 
			} 
	
			//启动监听线程
			m_ThreadListen.Start(m_Socket,this);
			//启动发送线程
			m_ThreadSend.Start(this);
	
	
	
			return	true;
		}
Esempio n. 18
0
int SctpSocket::Bind(SocketAddress& ad)
{
	if (!ad.IsValid())
	{
		Handler().LogError(this, "SctpSocket", -1, "invalid address", LOG_LEVEL_ERROR);
		return -1;
	}
	if (GetSocket() == INVALID_SOCKET)
	{
		Attach(CreateSocket(ad.GetFamily(), m_type, "sctp"));
	}
	if (GetSocket() != INVALID_SOCKET)
	{
		int n = bind(GetSocket(), ad, ad);
		if (n == -1)
		{
			Handler().LogError(this, "SctpSocket", -1, "bind() failed", LOG_LEVEL_ERROR);
#ifdef ENABLE_EXCEPTIONS
			throw Exception("bind() failed for SctpSocket, port: " + Utility::l2string(ad.GetPort()));
#endif
		}
		return n;
	}
	return -1;
}
Esempio n. 19
0
BOOL CServerSocet::StartServer(CString* sError)
{

	if(bCreateSocket)
		CloseSocket(sError);
	
	if(!bInitWinSocket)
		if (!StartWinSock(sError)) return FALSE;
	if (!SocketGetHostName(sError)) return FALSE;
	if (!CreateSocket(sError)) return FALSE;
	if (!LinkSoketPort(sError)) return FALSE;
	if (!LinkWindowSocket(hWnd,sError)) return FALSE;
	if (!ListenSocket(sError)) return FALSE;

	sokClientSocket = new stSockets *[iMaxCol];
	int i;
	for(i=0;i<iMaxCol;i++)
	{
		sokClientSocket[i] = new (stSockets);
		sokClientSocket[i]->dBase = NULL;
		sokClientSocket[i]->sUserIP = _T("");
		sokClientSocket[i]->bAdmin = FALSE;
		sokClientSocket[i]->sDataStart = _T("");
		sokClientSocket[i]->sok = NULL;
		sokClientSocket[i]->hThread = 0;
	}	
	bStatus = TRUE;
	return TRUE;
}
Esempio n. 20
0
int main(int argc, char* argv[]) {

    //sending = true;

    //Socket socket();
    InitializeSockets();
    CreateSocket();

    if (sending) {
      //SendPacket(data, sizeof(data));

    }

    if (!gameCanStart) {
      printf("Waiting for players to connect...\n");
      FindPlayers();
    }

    ReceivePacket();


    ShutdownSockets();
    std::cin.get();

    return 0;

}
Esempio n. 21
0
DWORD cClientSocket::ConnectTo(DWORD u32_ServerIP, USHORT u16_ServerPort)
{

	DWORD u32_Error = ERROR_SUCCESS;
	
	if (CreateSocket())
	{
		u32_Error = WSAGetLastError();
		cout << "Create socket failed with error " << u32_Error << endl;
		return u32_Error;
	}
	
	sockaddr_in kAddressStruct;
	ZeroMemory(&kAddressStruct, sizeof(kAddressStruct));
	kAddressStruct.sin_family = AF_INET;
	kAddressStruct.sin_port = htons(u16_ServerPort);
	kAddressStruct.sin_addr.s_addr = u32_ServerIP;
	do
	{

		if (connect(m_hSocket, (LPSOCKADDR)&kAddressStruct, sizeof(SOCKADDR_IN)) != 0)
		{
			cout << "Could not connect to server. (" << WSAGetLastError() << ")" << endl;
		}
		else
		{
			cout << "Got connection with server, start working..." << endl;
			return u32_Error;
		}
		Sleep(5000);
	} while (true);


}
CBlockingUDPSocket::CBlockingUDPSocket() :
	m_cserIP(),
	m_Socket( 0 ),
	m_pImpl( new CImpl )
{
	CreateSocket(); 
}
Esempio n. 23
0
void*
runThreadedSocket(void *argv)
{
    char **argvptr = (char **)argv;
    printf("socket> thread launching\n");
    CreateSocket(argvptr);
    return (void*)NULL; 
}
Esempio n. 24
0
void NetworkManager::AcceptNewConnection()
{
    NetworkThread& worker = get_network_thread_for_new_connection();
    SocketPtr connection = CreateSocket(worker);

    acceptor_->async_accept(connection->socket(),
        boost::bind(&NetworkManager::OnNewConnection, this, connection, boost::asio::placeholders::error));
}
Esempio n. 25
0
int CLS_UDP::Connect()
{
    char *strIP;
    static struct sockaddr_in sockAddr;

    if(m_iStatus==SS_UNUSED)
    {
        if(CreateSocket()<0)
            return -1;
    }

    if(m_iStatus!=SS_CONNECT)
    {
        if(m_iStatus!=SS_BOUND)
        {
            if(Bind()<0)
                return -1;
        }

        memset(&sockAddr, 0, sizeof(sockAddr));
        sockAddr.sin_family = AF_INET;
        sockAddr.sin_addr.s_addr = inet_addr(m_strPeerIP);
        sockAddr.sin_port = htons(m_iPeerPort);

        if(connect(m_iSocket, (struct sockaddr *)&sockAddr, sizeof(sockAddr))<0)
        {
#ifdef _WIN32
            m_iSocketError=GetLastError();
//            if(!(m_iSocketError==WSAEINPROGRESS || m_iSocketError==WAEISCONN))
            if(m_iSocketError!=WSAEISCONN)
            {
                if(m_iSocketError==WSAEINVAL)
                    CloseSocket();
#else
            m_iSocketError=errno;
//            if(!(m_iSocketError==EINPROGRESS || m_iSocketError==EISCONN))
            if(m_iSocketError!=EISCONN)
            {
                if(m_iSocketError==EINVAL)
                    CloseSocket();
#endif
                return -3;
            }
        }

        if(!(m_strLocalIP[0]||m_iLocalPort))
        {
            strIP=GetLocalHost(&m_iLocalPort);
            if(strIP)
                strcpy(m_strLocalIP, strIP);
        }
        m_iSocketError=0;
        m_iStatus=SS_CONNECT;
    }

    return 0;
}
Esempio n. 26
0
SocketHandle::SocketHandle(SocketEventHandle *eventHandle,SocketEventHandle *continueHandle):
    socket_(INVALID_SOCKET),
    eventHandle_(eventHandle),
    continueHandle_(continueHandle)
{
    ZeroMemory(&localAddr_,sizeof(SOCKADDR_IN));
    ZeroMemory(&remoteAddr_,sizeof(SOCKADDR_IN));
    CreateSocket();
}
HANDLE S3PDBSocketServer::Start()
{
    HANDLE hRet = NULL;
    if ( ( NULL != m_hServer )
            || ( NULL == m_piRunSignal )
            || ( NULL == m_pSocketPool )
            || ( NULL == m_hEnablePool ) )
    {
        hRet = NULL;
        return hRet;
    }

    // The follow code is used to initialize
    // the environment for Windows OS platform
    // and should be removed or changed when
    // replanted to other platforms.
    //------>BEGIN
    WORD wVersionRequired = MAKEWORD(1,1);
    WSADATA WSAdata;
    if ( 0 != WSAStartup( wVersionRequired, &WSAdata ) )
    {
        hRet = NULL;
        return hRet;
    }
    //<------END

    if ( INVALID_SOCKET == m_Socket )
    {
        if ( FALSE == CreateSocket() )
        {
            hRet = NULL;
            return hRet;
        }
    }

    // Start up server thread
    //------>BEGIN
    if ( NULL != m_pSocketPool )
    {
        m_pSocketPool->Init( m_Socket, m_hEnablePool );
        m_pSocketPool->Start();
    }

    *m_piRunSignal = 1;
    m_ServerParam.piRunSignal = m_piRunSignal;
    m_ServerParam.pSocketPool = m_pSocketPool;
    m_ServerParam.serverSocket = m_Socket;

    m_hServer =
        KPICreateThread( S3PDBSocketServer::StartServer, &m_ServerParam, &m_dwServerThreadId );

    hRet = m_hServer;
    //<------END

    return hRet;
}
Esempio n. 28
0
// Send 2 pipelined HTTP requests 1 GET and 1 POST 
//
main(int argc, char *argv[])
{
    if (argc != 7)
    {
        printf("%s serverhost serverport myport postbodylen geturl posturl\n", 
                                                                    argv[0]);
        exit(0);
    }
    CreateSocket(argc, argv);
}
Esempio n. 29
0
int SocketServer_Run(SocketServer* self, char * listening_port_number)
{
	self->itsPort = atoi(listening_port_number);
	StartWSA(self);
	CreateSocket(self);
	BindToSocket(self);
	WaitForConnection(self);	
	Shutdown(self);

    return 0;
}
Esempio n. 30
0
    void Listener<SocketType>::BeginAccept()
    {
        auto worker = SelectWorker();
        auto socket = worker->CreateSocket();

        m_acceptor->async_accept(socket->GetAsioSocket(),
            [this, worker, socket] (const boost::system::error_code &ec)
        {
            this->OnAccept(worker, socket, ec);
        });
    }