Example #1
0
int main(int argc, char *argv[])
{
    WinsockInit();
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
Example #2
0
void init()
{
	char plugin_path[1024];
	int i;

    config_read();

	hInstance_for_id3editor = mod.hDllInstance;

    buffer = (unsigned char*)LocalAlloc(LPTR, 768*2);
    lastfn = (char*)LocalAlloc(LPTR, 1024*sizeof(char));

    /* Initialize winsock, necessary for streaming */
    WinsockInit();
}
Example #3
0
/*
 * UDP 本地
 */
UdpCom::UdpCom(unsigned short port) {
    socketFd = -1;
#if (defined _WIN32) || (defined _WIN64)
    if(!WinsockInit(2, 2)) {
        socketFd = -2;
        //记录日志
    }
#endif
    if(socketFd == -1) {
        memset(&socketAddr, 0, sizeof(struct sockaddr_in)); //清空socketAddr结构体
        socketAddr.sin_family = AF_INET; //地址类型为AF_INET(地址簇)
        socketAddr.sin_addr.s_addr = htonl(INADDR_ANY); //任意本地地址
        socketAddr.sin_port = htons(port); //服务器端口号
        socketFd = socket(AF_INET, SOCK_DGRAM, 0); //初始化一个IPv4族的数据报套接字
        //int flag = fcntl(socketFd, F_GETFL, 0); //获取建立的socketFd的当前状态
        //fcntl(socketFd, F_SETFL, flag | O_NONBLOCK); //将当前socketFd设置为非阻塞
        if(bind(socketFd, (struct sockaddr *)(&socketAddr), sizeof(struct sockaddr)) != 0) //绑定端口号
            cout << "Bind Port Error" << endl;
    }
}
Example #4
0
//
// Attempt to load winsock DLL and obtain entry points to required API.
//
//
HX_RESULT HXWinSockLib::Load()
{
    HXScopeLock lock((IHXMutex*)m_pLoadMutex);

    HXLOGL3(HXLOG_NETW, "HXWinSockLib::Load(): usage count going to %lu", m_userCount + 1);

    if(m_hLib)
    {
        ++m_userCount;
        return HXR_OK;
    }

#if defined(WIN32_PLATFORM_PSPC)   
    const TCHAR* const pszLibName       = "winsock.dll";
    const TCHAR* const pszAltLibName    = 0;
#elif defined(_WIN32)
    const TCHAR* const pszLibName       = "ws2_32.dll"; // 2.X
    const TCHAR* const pszAltLibName    = "winsock32.dll"; // 1.1
#else
    # error fix this
#endif

    HX_RESULT hr = HXR_FAIL;
  
    HXLOGL3(HXLOG_NETW, "HXWinSockLib::Load(): loading lib");

    m_hLib = LoadLibrary(pszLibName);
    if(!m_hLib && pszAltLibName)
    {
        m_hLib = LoadLibrary(pszAltLibName);
    }

    if (m_hLib)
    {
        ++m_userCount;
        hr = HXR_OK;

        //
        // load required set of function pointers from library
        //
        LOAD_PROC(accept);
        LOAD_PROC(bind);
        LOAD_PROC(closesocket);
        LOAD_PROC(WSAStartup);
        LOAD_PROC(WSACleanup);
        LOAD_PROC(connect);
        LOAD_PROC(ioctlsocket);
        LOAD_PROC(getpeername);
        LOAD_PROC(getsockname);
        LOAD_PROC(getsockopt);
        LOAD_PROC(htonl);
        LOAD_PROC(htons);
        LOAD_PROC(inet_addr);
        LOAD_PROC(inet_ntoa);
        LOAD_PROC(listen);
        LOAD_PROC(ntohl);
        LOAD_PROC(ntohs);
        LOAD_PROC(recv);
        LOAD_PROC(recvfrom);
        LOAD_PROC(select);
        LOAD_PROC(send);
        LOAD_PROC(sendto);
        LOAD_PROC(setsockopt);
        LOAD_PROC(shutdown);
        LOAD_PROC(socket);
        LOAD_PROC(gethostbyaddr);
        LOAD_PROC(gethostbyname);
        LOAD_PROC(gethostname);
        LOAD_PROC(__WSAFDIsSet);

#if defined(_WINCE)
        LOAD_PROC(SetLastError);
        LOAD_PROC(GetLastError);
#endif

#if !defined(_WINCE)
        LOAD_PROC(getservbyport);
        LOAD_PROC(getservbyname);
        LOAD_PROC(getprotobynumber);
        LOAD_PROC(getprotobyname);

        LOAD_PROC(WSASetLastError);
        LOAD_PROC(WSAGetLastError);
        //LOAD_PROC(WSAIsBlocking);
        //LOAD_PROC(WSAUnhookBlockingHook);
        //LOAD_PROC(WSASetBlockingHook);
        //LOAD_PROC(WSACancelBlockingCall);
        LOAD_PROC(WSAAsyncGetServByName);
        LOAD_PROC(WSAAsyncGetServByPort);
        LOAD_PROC(WSAAsyncGetProtoByName);
        LOAD_PROC(WSAAsyncGetProtoByNumber);
        LOAD_PROC(WSAAsyncGetHostByName);
        LOAD_PROC(WSAAsyncGetHostByAddr);
        LOAD_PROC(WSACancelAsyncRequest);
        LOAD_PROC(WSAAsyncSelect);
        LOAD_PROC(WSASend);
        LOAD_PROC(WSASendTo);
        LOAD_PROC(WSARecv);
        LOAD_PROC(WSARecvFrom);
        LOAD_PROC(WSAIoctl);
#endif
        
        // everything prior to this should be succeed even with ipv4-only WinSock support
        HX_ASSERT(HXR_OK == hr);

        if( HXR_OK == hr )
        {
            // optional IPv6 api
            LOAD_PROC(getaddrinfo);
            LOAD_PROC(getnameinfo);
            LOAD_PROC(freeaddrinfo);
            hr = WinsockInit();
        }

        if(FAILED(hr))
        {
            UnLoad();
        }

    }
    return hr;
}