本文整理汇总了C++中createSocket函数的典型用法代码示例。如果您正苦于以下问题:C++ createSocket函数的具体用法?C++ createSocket怎么用?C++ createSocket使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了createSocket函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: main
int main(int argc, char *argv[]) {
int listenfd, connectfd;
struct sockaddr_in host_addr, pin_addr;
int pin_addr_size;
pthread_t multiCS;
ADDR_ARG *arg = NULL;
createSocket(&listenfd, 0);
initHostAddr(&host_addr, myport);
printf(" init ipaddress: %s\n", inet_ntoa(host_addr.sin_addr));
bindPort(&listenfd, &host_addr);
listenPort(&listenfd);
pin_addr_size = sizeof(pin_addr);
while (1) {
getAccept(&listenfd, &connectfd, &pin_addr, &pin_addr_size);
arg = (ADDR_ARG *)malloc(sizeof(ADDR_ARG));
arg->connectfd = connectfd;
memcpy((void *)&arg->cli_addr, &pin_addr, sizeof(pin_addr));
createPthread(&multiCS, start_talk, arg);
}
close(listenfd);
return 0;
}
开发者ID:yyypasserby,项目名称:lyepop,代码行数:28,代码来源:server.c
示例17: GdbInOut
GdbInOutSocket::GdbInOutSocket() :
GdbInOut(),
activeSocket(-1) {
// Create socket to listen on
listenSocket = createSocket(GDB_PORT_NUM, true);
}
开发者ID:cktben,项目名称:usbdm-eclipse-makefiles-build,代码行数:7,代码来源:GdbInOutSocket.cpp
示例18: srand
bool SessionManager::init(int argc, char *argv[])
{
srand(time(&curTime));
option.load(argc, argv);
if (!initDB())
return false;
s2s->connect(option.s2s_ip, option.s2s_port, 30);
if (!createSocket(SOCK_STREAM))
return false;
if (!bindAddress(option.sm_ip, option.sm_port)) {
ICQ_LOG("Can not bind on port %d\n", option.sm_port);
return false;
}
listen(sockfd, 5);
addEvent(SOCKET_READ);
ICQ_LOG("sm is now started\n");
return true;
}
开发者ID:cysfek,项目名称:openq-ng.linq2,代码行数:25,代码来源:sessionmanager.cpp
示例19: initExpprocSocket
/*
* initExpprocSocket()
*
* Creates the listen socket for communication to Expproc fro other processes
*
* instead of signal handler etc, this routine create a thread to handle the accept
* thus removing the need for socketfuncs.c and asyncIO.c
*
* Author greg Brissey 3/12/2006
*/
int initExpprocSocket()
{
int status, ival;
int applPort;
void *AcceptConnection( void *arg);
pApplSocket = createSocket( SOCK_STREAM );
if (pApplSocket == NULL) /* each call to program in */
return( -1 ); /* sockets.c sets errno */
ival = openSocket( pApplSocket );
if (ival != 0)
return( -1 );
ival = bindSocketAnyAddr( pApplSocket );
if (ival != 0)
{
errLogSysRet(ErrLogOp,debugInfo,"initExpprocSocket: bindSocketAnyAddr failed:" );
return( -1 );
}
applPort = returnSocketPort( pApplSocket );
ival = listenSocket( pApplSocket );
if (ival != 0)
{
errLogSysRet(ErrLogOp,debugInfo,"initExpprocSocket: listenSocket failed:" );
return( -1 );
}
savePortInfo( applPort );
pAcceptQueue = rngBlkCreate(128,"AcceptQ", 1); /* accepted socket queue */
/* create thread to handle the accept */
status = pthread_create (&AcceptThreadId, NULL, AcceptConnection, (void*) pApplSocket);
return( 0 );
}
开发者ID:DanIverson,项目名称:OpenVnmrJ,代码行数:45,代码来源:expsocket.c
示例20: deliverMessage
int
deliverMessage( char *interface, char *message )
{
char tmpstring[ 256 ];
int ival1, ival2;
int ival, mlen;
MSG_Q_ID tmpMsgQ;
if (interface == NULL)
return( -1 );
if (message == NULL)
return( -1 );
mlen = strlen( message );
if (mlen < 1)
return( -1 );
ival = sscanf( interface, "%s %d %d\n", &tmpstring[ 0 ], &ival1, &ival2 );
/*
* diagPrint(debugInfo,"Expproc deliverMessage ----> host: '%s', port: %d,(%d,%d) pid: %d\n",
* tmpstring,ival1,0xffff & ntohs(ival1), 0xffff & htons(ival1), ival2);
*/
if (ival >= 3) {
int replyPortAddr;
char *hostname;
Socket *pReplySocket;
replyPortAddr = ival1;
hostname = &tmpstring[ 0 ];
pReplySocket = createSocket( SOCK_STREAM );
if (pReplySocket == NULL)
return( -1 );
ival = openSocket( pReplySocket );
if (ival != 0)
return( -1 );
/* replyPortAddr is already in network order,
* so switch back so sockets.c can switch back
*/
ival = connectSocket( pReplySocket, hostname, 0xFFFF & htons(replyPortAddr) );
if (ival != 0)
return( -2 );
writeSocket( pReplySocket, message, mlen );
closeSocket( pReplySocket );
free( pReplySocket );
return( 0 );
}
tmpMsgQ = openMsgQ( interface );
if (tmpMsgQ == NULL)
return( -1 );
ival = sendMsgQ( tmpMsgQ, message, mlen, MSGQ_NORMAL, NO_WAIT );
closeMsgQ( tmpMsgQ );
return( ival );
}
开发者ID:DanIverson,项目名称:OpenVnmrJ,代码行数:59,代码来源:nddscomfuncs.c
注:本文中的createSocket函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论