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


C++ createSocket函数代码示例

本文整理汇总了C++中createSocket函数的典型用法代码示例。如果您正苦于以下问题:C++ createSocket函数的具体用法?C++ createSocket怎么用?C++ createSocket使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


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

示例1: main

int main(int argc, const char *argv[])
{
    void *context = zmq_ctx_new();

    assert(argc == 4);
    void *subWildcardSock = createSocket(context, argv[1], ZMQ_SUB);
    void *pubFilenamesSock = createSocket(context, argv[2], ZMQ_PUB);
    void *subDoneSock = createSocket(context, argv[3], ZMQ_SUB);

    std::cout << "Sockets connected" << std::endl;

    bool done = false;
    std::vector<void*> sockets;
    sockets.push_back(subWildcardSock);
    sockets.push_back(subDoneSock);
    while (!done)
    {
        switch (demultiplexSockets(sockets))
        {
        case 0:
            processWildcards(subWildcardSock, pubFilenamesSock);
            break;
        case 1:
            processDone(subDoneSock);
            done = true;
            break;
        };
    }

    zmq_close(subWildcardSock);
    zmq_close(pubFilenamesSock);
    zmq_close(subDoneSock);
}
开发者ID:HBPVIS,项目名称:EDA2,代码行数:33,代码来源:BottomLeft.cpp

示例2: Protocol_

NetworkSocket::NetworkSocket(const ENetworkProtocols Protocol) :
    Protocol_   (Protocol       ),
    Socket_     (INVALID_SOCKET )
{
    createSocket();
    setupBehavior();
}
开发者ID:bekasov,项目名称:SoftPixelEngine,代码行数:7,代码来源:spNetworkSocket.cpp

示例3: handleServer

/******************************************
 * Initialisieren und starten des Servers
 */
void* handleServer(){
  #ifdef _DEBUG
  fprintf(stderr,"++ handleserver\n");
  #endif
  char    bOK         = TRUE;
  int     sProxyClient= ~0,
          sProxyWait  = ~0;
  struct  sockaddr_in saAddress;
  struct  threadParam *pThreadParam;

  if(!generateProxyAddress(&saAddress))             return NULL;
  if(!createSocket        (&sProxyWait))            return NULL;
  if(!bindSocket          (&sProxyWait,&saAddress)) return NULL;
  if(!listenSocket        (&sProxyWait))            return NULL;

  //Endlos-schleife fuer accepts
  while(1){
    bOK=acceptSocket(sProxyWait,&sProxyClient);
    if(bOK==TRUE){
      #ifdef _DEBUG
      fprintf(stderr,"***threadNewClient %d\n",sProxyClient);
      #endif
      pThreadParam=(struct threadParam*)malloc(sizeof(struct threadParam));
      pThreadParam->socketID=sProxyClient;
      threadNewClient((void*)pThreadParam);
    }
  }
  closesocket(sProxyWait);

  #ifdef _DEBUG
  fprintf(stderr,"-- handleserver\n");
  #endif
}
开发者ID:BackupTheBerlios,项目名称:sprintproxy-svn,代码行数:36,代码来源:sprintproxy.c

示例4: router

/*************************************************************
   This function creates datagram sockets for
   all routers directly connected to this router (input argument)

   Populates the neighborSocketArray   
   When done, static variable count contains the number of neighbor routers
   stored in the array
   Returns a pointer to the neighborSocketArray
**************************************************************/
neighborSocket* createConnections(char* routerName)
{
	int i,j;
	int socket;
	char *sourcehost, *desthost;
	int port, sourceport, destport;

	if (count != 0)
	{
		return neighborSocketArray;
	}

	// Find details for routerName from routerInfoTable
	for(i=0;i<routercount;i++)
	{
		if(strcmp(routerName,routerInfoTable[i].router) == 0)
			break;
	}

	// Get source hostname for routerName
	sourcehost = (char*)malloc(strlen(routerInfoTable[i].host)+1);
	strcpy(sourcehost,routerInfoTable[i].host);

	// Getbaseport for routerName
	port = routerInfoTable[i].baseport;

	// For all routers directly connected to me (present in linkInfoTable)
	for(i=0;i<linkcount;i++)
	{
		// Find details for this connected router
		for(j=0;j<routercount;j++)
		{
			if(strcmp(linkInfoTable[i].router,routerInfoTable[j].router) == 0)
				break;
		}

		// Get the destination host name
		desthost = (char*)malloc(strlen(routerInfoTable[j].host)+1);
		strcpy(desthost,routerInfoTable[j].host);

		// Calculate destination port number (destination baseport + remotelink)
		destport = routerInfoTable[j].baseport + linkInfoTable[i].remotelink;

		// Calculate source port number (source baseport + locallink)
		sourceport = port + linkInfoTable[i].locallink;

		// Create connected Datagram socket and get socket descriptor
		socket = createSocket(sourcehost, sourceport, desthost, destport);
		
		// Store neighbor router name and socket descriptor in neighborSocketArray
		neighborSocketArray[count].neighbor = (char*)malloc(strlen(linkInfoTable[i].router)+1);
		strcpy(neighborSocketArray[count].neighbor,linkInfoTable[i].router);
		neighborSocketArray[count].socket = socket;

		// Increment the neighborSocket Pair count
		count++;
	}

	return neighborSocketArray;
}
开发者ID:griffinfujioka,项目名称:DistanceVectorRoutingAlgorithm,代码行数:69,代码来源:readrouters.c

示例5: readURL

/* readURL(url) - access to the specified URL and stores the info read in 'data_URL' variable
 *
 * This function access to the specified URL and stores the info read in 'data_URL' variable
 *
 * It modifies 'flag' if expected answer is not received after sending a command to GPRS module
 *
 * It stores in 'socket_ID' the TCP session ID assigned to the last call to create a socket
 *
 * Returns '1' on success and '0' if error
*/
uint8_t WaspGPRS::readURL(const char* url)
{
	char command[30];
	char* data=",20";
	uint8_t answer=0;
	long previous=0;
	uint8_t byteIN=0;
	uint8_t a=0;
	
	if(!configureGPRS()) return 0;
	
	if(!createSocket(url,"80",GPRS_CLIENT)) return 0;
	
	serialFlush(PORT_USED);
	sprintf(command,"%s%c%c","GET / HTTP/1.0",'\r','\n');
	if(!sendData(command,socket_ID)){
		closeSocket(socket_ID);
		return 0;
	}
		
	waitForData("+KTCP_DATA:",20,0,0);
	if(readData(socket_ID,GPRS_DATA_LENGTH)<0){
		closeSocket(socket_ID);
		return 0;
	}
	
	while(!closeSocket(socket_ID)) closeSocket(socket_ID);
	
	return 1;
}
开发者ID:ipadron,项目名称:waspmote-api,代码行数:40,代码来源:WaspGPRS.cpp

示例6: createSocket

void ServerCore::sendCommandToDevice(QString deviceUID, QVariantMap paramMap)
{
	QTcpSocket *socket = createSocket(deviceUID);

	QObject::connect(socket, &QTcpSocket::readyRead, [=]
	{
		QByteArray byteArray = socket->readAll();
		QJsonDocument jsonDoc = QJsonDocument::fromJson(byteArray);
		QJsonObject jsonObj = jsonDoc.object();

		if (jsonObj[JSON_KEY_STATUS].toInt() == STATUS_SUCCESSFUL)
		{
			QVariantMap retMap = jsonObj.toVariantMap();
			Q_EMIT commandReturned(deviceUID, retMap);
		}

		socket->disconnectFromHost();
	});

	QObject::connect(socket, &QTcpSocket::disconnected, [=]
	{
		socket->deleteLater();
	});

	QString jsonCmd = JsonGenerator::GenerateJsonCommand(TCP_COMMAND_TYPE::SEND_COMMAND_TO_DEVICE, paramMap);

	socket->write(jsonCmd.toLatin1());

	socket->waitForBytesWritten();
	socket->waitForReadyRead();
}
开发者ID:cyril0108,项目名称:samidevice,代码行数:31,代码来源:servercore.cpp

示例7: strerror

echoServerContext *createTcpServer(epoller *epoll, int port) {
	int s;
	struct sockaddr_in sa;

	if ((s = createSocket()) == -1) {
		oom("socket creation error : %s", strerror(errno));
		return NULL;
	}

	memset(&sa, 0, sizeof(sa));
	sa.sin_family = AF_INET;
	sa.sin_port = htons(port);
	sa.sin_addr.s_addr = htonl(INADDR_ANY);

	if (bind(s, (struct sockaddr*)&sa, sizeof(sa)) == -1) {
		close(s);
		oom("bind error : %s", strerror(errno));
		return NULL;
	}
	if (listen(s, 511) == -1) { /* the magic 511 constant is from nginx */
		close(s);
		oom("listen error : %s", strerror(errno));
		return NULL;
	} 

	echoServerContext *server = (echoServerContext *)malloc(sizeof(echoServerContext));
	memset(server, 0, sizeof(echoServerContext));
	
	server->port = port;
	server->epoll = epoll;
	server->serverfd = s;
	return server;
}
开发者ID:adderly,项目名称:coconut,代码行数:33,代码来源:epoll_echoserver.c

示例8: CSock

/*
 * Constructor
 */
CUdpSock::CUdpSock( bool logging ) :
	CSock( logging ),
	_Bound( false )
{
	// Socket creation
	createSocket( SOCK_DGRAM, IPPROTO_UDP );
}
开发者ID:CCChaos,项目名称:RyzomCore,代码行数:10,代码来源:udp_sock.cpp

示例9: ccnet_net_open_tcp

evutil_socket_t
ccnet_net_open_tcp (const struct sockaddr *sa, int nonblock)
{
    evutil_socket_t s;
    int sa_len;

    if( (s = createSocket(sa->sa_family, nonblock)) < 0 )
        return -1;

#ifndef WIN32
    if (sa->sa_family == AF_INET)
        sa_len = sizeof (struct sockaddr_in); 
    else
        sa_len = sizeof (struct sockaddr_in6);
#else
    if (sa->sa_family == AF_INET)
        sa_len = sizeof (struct sockaddr_in); 
    else
        return -1;
#endif


    if( (connect(s, sa, sa_len) < 0)
#ifdef WIN32
        && (sockerrno != WSAEWOULDBLOCK)
#endif
        && (sockerrno != EINPROGRESS) )
    {
        evutil_closesocket(s);
        s = -1;
    }

    return s;
}
开发者ID:9thsector,项目名称:ccnet,代码行数:34,代码来源:net.c

示例10: main

int main ()
{
    logFile = new std::ofstream;
    (*logFile).open("client_tester.log", std::ios_base::app);


    testerAddr.sin_family = AF_INET;
    testerAddr.sin_port = (uint16_t) port;
    socklen_t addressLength = sizeof(sockaddr_in);
    memset(&testerAddr, 0, addressLength);

    // create bind and listen on socket
    createSocket();
    bindSocket();
    listenSocket();

    // get few commands and print them to log file and stdout?
    std::cout << "waiting to accept connection..." << std::endl;
    commandSocketFD = accept(testerSocketFD, reinterpret_cast<struct sockaddr *>(&cliAddr), &addressLength);
    ssize_t readSize = read(commandSocketFD, buff, MAX_BUFFER_LENGTH);
    std::cout << "buff: " << buff << std::endl;

    // send responses

}
开发者ID:hujihw,项目名称:os-ex5,代码行数:25,代码来源:ClientTester.cpp

示例11: setupListenSocket

/* Listen for incomoing connection from the client accpets 
 * only a maximum of 10 connections */
void setupListenSocket(int port, int *listen_socket) {
  struct sockaddr_in address;
  createServerAddrStruct(&address, port);
  createSocket(listen_socket);
  bindSocket(&address, listen_socket);
  listen(*listen_socket, MAX_PENDING_CONNECTIONS);
}
开发者ID:GuelorEmanuel,项目名称:C-CC-File-Transfer,代码行数:9,代码来源:networking.c

示例12: tcpGenericConnect

static int tcpGenericConnect(char *err, char *addr, int port, int flags) {
    int s;
    struct sockaddr_in sa;

    if ((s = createSocket(err, PF_INET)) == -1) {
        return -1;
    }
    sa.sin_family = PF_INET;/*{{{*/
    sa.sin_port = htons(port);
    if (inet_aton(addr, &sa.sin_addr) == 0) {
        struct hostent *he;
        he = gethostbyname(addr);
        if (he == NULL) {
            setError(err, "can't resolve: %s", addr);
            close(s);
            return -1;
        }
        memcpy(&sa.sin_addr, he->h_addr, sizeof(struct in_addr));
    }
    if (flags & NETWORK_CONNECT_NONBLOCK) {
        if(setNonBlock(err, s) != 0) {
            return -1;
        }
    }
    if (connect(s, (struct sockaddr*)&sa, sizeof(sa)) == -1) {
        if (errno == EINPROGRESS && (flags & NETWORK_CONNECT_NONBLOCK)) {
            return s;
        }
        setError(err, "connect: %s", strerror(errno));
        close(s);
        return -1;
    }/*}}}*/
    return s;
}
开发者ID:machicao2013,项目名称:recipes,代码行数:34,代码来源:network_util.c

示例13: sessionHandler

static void sessionHandler(int port)
{
	struct sockaddr_in childSocket;
	socklen_t socketLen = sizeof(childSocket);
	int idx1, clientIdx;

	signal(SIGCHLD, sessionSignalHandler); /* register for the child's signal */
	if(createSocket(port) == 1)
	{
		fprintf(stderr, "sessionHandler: Unable to setup socket\n");
		exit(1);
	}

	while((clientIdx = accept(serverSocket, (struct sockaddr *)&childSocket, &socketLen)) > 0)
	{
		printf("sessionHandler: Client connection from %s, client index %d\n", inet_ntoa(childSocket.sin_addr), clientIdx);
		for(idx1=0; idx1 < MaxSessions; idx1++)
		{
			if(childPID[idx1] == 0)
			{
				serverPID[idx1] = clientIdx;
				childPID[idx1] = createChildProcess(socketService, clientIdx);
				break;
			}
		}

		if(idx1 == MaxSessions)
			fprintf(stderr, "sessionHandler: Max clients reached\n");

		socketLen = sizeof(childSocket);
	}
	shutdown(serverSocket, SHUT_RDWR);
	close(serverSocket);
}
开发者ID:NicoleYson,项目名称:BankSystem-Multithreading,代码行数:34,代码来源:bankServer.c

示例14: setDomainSocketPath

int CSocketClient::start(int nSocketType, const char* cszAddr, short nPort,
		int nStyle)
{
	if (AF_UNIX == nSocketType)
	{
		setDomainSocketPath(cszAddr);
	}
	else if (AF_INET == nSocketType)
	{
		if (-1 == setInetSocket(cszAddr, nPort))
		{
			_DBG("set INET socket address & port fail");
			return -1;
		}
	}

	if (-1 != createSocket(nSocketType, nStyle))
	{
		if (SOCK_STREAM == nStyle)
		{
			if (-1 == connectServer())
			{
				socketClose();
				return -1;
			}
		}

		_DBG("[Socket Client] Socket connect success");
		return getSocketfd();
	}

	return -1;
}
开发者ID:jugo8633,项目名称:ControllerSystem,代码行数:33,代码来源:CSocketClient.cpp

示例15: close

void Udp::initAddr(u_short port, const std::string& ip) {
  close(sock_);
  memset(&addr_, 0, sizeof(addr_));
  createSocket();

  port_ = port;
  ip_ = ip;

  bool is_host = ip_.empty();

  addr_.sin_family = AF_INET;
  addr_.sin_port = htons(port_);
  
  addr_.sin_addr.s_addr
    = is_host
    ? INADDR_ANY
    : inet_addr(ip_.c_str());

  int on = 1;
  setsockopt(sock_, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));

  // named the socket(bind)
  if (is_host) {
    int res = bind(sock_, (sockaddr*)&addr_, sizeof(addr_));
    if (res < 0) {
      std::cout << res << ": err bind" << std::endl;
    }
  }
}
开发者ID:Lacty,项目名称:SakuraVpsWork,代码行数:29,代码来源:udp.cpp


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