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


C++ create_socket函数代码示例

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


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

示例1: main

int main()
{
    int server_socket;
    int port;
    int epollfd;
    int ret;
    char buf[1024];

    port = 8765;
    server_socket = create_socket(port);

    /* 监听 */
    listen(server_socket, 10);

    struct epoll_event events[100];

    epollfd = epoll_create(1024);

    add_event(epollfd,server_socket,EPOLLIN);

    while(1) {
        //该函数返回已经准备好的描述符事件数目
        ret = epoll_wait(epollfd,events,EPOLLEVENTS,-1);
        //处理接收到的连接
        handle_events(epollfd,events,ret,server_socket,buf);
    }
    return 0;
}
开发者ID:zhang-wen-guang,项目名称:CODES,代码行数:28,代码来源:server.cpp

示例2: bg_listen_socket_create_unix

int bg_listen_socket_create_unix(const char * name,
                                 int queue_size)
  {
  int ret;

  struct sockaddr_un addr;
  int addr_len;
  ret = create_socket(PF_LOCAL, SOCK_STREAM, 0);
  if(ret < 0)
    {
    bg_log(BG_LOG_ERROR, LOG_DOMAIN, "Cannot create unix server socket");
    return -1;
    }

  addr.sun_family = AF_LOCAL;
  strncpy (addr.sun_path, name, sizeof(addr.sun_path));
  addr.sun_path[sizeof (addr.sun_path) - 1] = '\0';
  addr_len = SUN_LEN(&addr);
  if(bind(ret,(struct sockaddr*)(&addr),addr_len)<0)
    {
    bg_log(BG_LOG_ERROR, LOG_DOMAIN, "Cannot bind UNIX domain socket: %s",
           strerror(errno));
    return -1;
    }
  if(listen(ret, queue_size))
    {
    bg_log(BG_LOG_ERROR, LOG_DOMAIN, "Cannot put socket into listening mode");
    return -1;
    }
  return ret;
  }
开发者ID:Jheengut,项目名称:gmerlin,代码行数:31,代码来源:socket.c

示例3: main

int main(int argc, char **argv)
{
    int choice;
    int servfd;
    char user[MAXNAMELEN];
    char pass[MAXNAMELEN];
    char content[CONTENTLEN];
    unsigned char buf[CONTENTLEN];
    size_t packetsize, pks;
    int code;
  
    if(argc!=2)
	{
	    fprintf(stderr, "Usage: client.exe servername\n");
	    exit(-1);
	}
    servfd = create_socket(argv[1], DEFAULT_PORT);
    
    if(servfd)
	{
	    Run(servfd);	
	    close(servfd);
	} //End code = 0 register user
    return 0;
}
开发者ID:telescreen,项目名称:pokemon,代码行数:25,代码来源:client.c

示例4: msg_init

int msg_init(char *sock_path)
{
	int listen_sock;
	int efd;
	int ret;

	listen_sock = create_socket(sock_path); 
	if (-1 == listen_sock) {
		return -1;
	}

	efd = epoll_create1(0);
	if (efd == -1)
	{
		DEBUG_ERROR("epoll_create");
		close(listen_sock);

		return -1;
	}

	ret = add2epoll(efd, EPOLLIN, listen_sock);
	if (0 == ret)
	{
		g_efd = efd;
		g_listen_fd = listen_sock;
	}
	else
	{
		close(listen_sock);
		close(efd); 
	}


	return ret;
}
开发者ID:cqm0609,项目名称:c-epoll-message-framework,代码行数:35,代码来源:msg_epoll.c

示例5: bg_socket_connect_unix

int bg_socket_connect_unix(const char * name)
  {
  struct sockaddr_un addr;
  int addr_len;
  int ret;
  ret = create_socket(PF_LOCAL, SOCK_STREAM, 0);
  if(ret < 0)
    {
    bg_log(BG_LOG_ERROR, LOG_DOMAIN, "Cannot create unix socket");
    return -1;
    }

  addr.sun_family = AF_LOCAL;
  strncpy (addr.sun_path, name, sizeof(addr.sun_path));
  addr.sun_path[sizeof (addr.sun_path) - 1] = '\0';
  addr_len = SUN_LEN(&addr);
  
  if(connect(ret,(struct sockaddr*)(&addr),addr_len)<0)
    {
    bg_log(BG_LOG_ERROR, LOG_DOMAIN, "Connecting unix socket failed: %s",
           strerror(errno));
    return -1;
    }
  return ret;
  }
开发者ID:Jheengut,项目名称:gmerlin,代码行数:25,代码来源:socket.c

示例6: qnet_tcp_listen

int qnet_tcp_listen(int port, const char *bindaddr) {
  UNUSED(bindaddr);

  int                 fd;
  struct sockaddr_in  sa;

  if ((fd = create_socket()) < 0) {
    return -1;
  }

  if (set_nonblocking(fd) < 0) {
    return -1;
  }

  memset(&sa,0,sizeof(sa));
  sa.sin_family = AF_INET;
  sa.sin_port = htons(port);
  sa.sin_addr.s_addr = htonl(INADDR_ANY);
  if (bindaddr && inet_aton(bindaddr, &sa.sin_addr) == 0) {
    qerror("invalid bind address");
    close(fd);
    return -1;
  }
  if (net_listen(fd,(struct sockaddr*)&sa, sizeof(sa)) < 0) {
    close(fd);
    return -1;
  }

  return fd;
}
开发者ID:changguanghua,项目名称:qnode,代码行数:30,代码来源:qnet.c

示例7: PJ_DEF

/*
 * pjsip_fake_udp_transport_start()
 *
 * Create a FAKE_UDP socket in the specified address and start a transport.
 */
PJ_DEF(pj_status_t) pjsip_fake_udp_transport_start( pjsip_endpoint *endpt,
					       const pj_sockaddr_in *local_a,
					       const pjsip_host_port *a_name,
					       unsigned async_cnt,
					       pjsip_transport **p_transport)
{
    pj_sock_t sock;
    pj_status_t status;
    char addr_buf[PJ_INET6_ADDRSTRLEN];
    pjsip_host_port bound_name;

    PJ_ASSERT_RETURN(endpt && async_cnt, PJ_EINVAL);

    status = create_socket(pj_AF_INET(), local_a, sizeof(pj_sockaddr_in),
			   &sock);
    if (status != PJ_SUCCESS)
	return status;

    if (a_name == NULL) {
	/* Address name is not specified.
	 * Build a name based on bound address.
	 */
	status = get_published_name(sock, addr_buf, sizeof(addr_buf),
				    &bound_name);
	if (status != PJ_SUCCESS) {
	    pj_sock_close(sock);
	    return status;
	}

	a_name = &bound_name;
    }

    return pjsip_fake_udp_transport_attach( endpt, sock, a_name, async_cnt,
				       p_transport );
}
开发者ID:oldurecu,项目名称:sprout,代码行数:40,代码来源:faketransport_udp.cpp

示例8: nonblock_connect_to

int nonblock_connect_to(const char * ip,int port, struct sockaddr_in* addr)
{
	int res;

	int fd = create_socket();
	if (fd < 0) 
    {
		return -1;
	}

	int flags = fcntl(fd,F_GETFL,0);
    fcntl(fd, F_SETFL, flags | O_NONBLOCK);
	   
	make_address(addr, ip, port);

	res = connect(fd, (const struct sockaddr*)addr, (socklen_t)sizeof(struct sockaddr));
	if ( res < 0) 
    {
        if(errno == EINPROGRESS)
        {
            return fd;
        }

        close_socket(fd);
        return -1;
    }
	return fd;
}
开发者ID:qiaolei-qql,项目名称:root,代码行数:28,代码来源:socket_utility.c

示例9: main

int main(int  argc,
	 char **argv)
{
   SOCKET              listen_sock;
   struct sockaddr_un  addr;
   union conv_sockaddr u_sock_addr;
   int                 len, nb_str;
   char                **print_me;
   listen_sock = create_socket();
   strcpy(addr.sun_path, get_path());
   addr.sun_family = AF_LOCAL;
   u_sock_addr.un = &addr;
   if (connect(listen_sock, u_sock_addr.ad, sizeof(addr)) == -1)
   {
      printf("Client not connected.\n");
      return (-1);
   }
   if ((nb_str =parse_arg(argc, argv, &print_me)) == 0)
      return (close_server(listen_sock));
   for (; nb_str > 0; nb_str--)
   {
      len = strlen(print_me[nb_str - 1]);
      write(listen_sock, &len, sizeof(len));
      write(listen_sock, print_me[nb_str - 1], len);
   }
   close(listen_sock);
   free(print_me);
   return (0);
}
开发者ID:Oicho,项目名称:psychic-hipster,代码行数:29,代码来源:sv_stl.c

示例10: main

int main() {
        init_epoll();
        create_socket();
        setup_signals();

        while (running) {
                struct epoll_event event;
                int ret = epoll_wait(epoll_fd, &event, 1, -1);
                if (ret == 0)
                        continue;

                if (ret < 0) {
                        if (errno == EINTR)
                                continue;

		        syslog(LOG_ERR, "epoll_wait: %s\n", strerror(errno));
                        exit(1);
                }

                if (event.data.ptr == &listen_event)
                        handle_accept(event.events);
                else
                        handle_data(event.data.ptr);
        }

        cleanup();
}
开发者ID:Philzen,项目名称:packages,代码行数:27,代码来源:sse-multiplexd.c

示例11: ipc_init

void
ipc_init(recieve_callback callback_func)
{
	assert(!initialized);
	callback = callback_func;

#ifdef _WIN32
	int result;
	WSADATA wsaData;

	result = WSAStartup(MAKEWORD(2, 2), &wsaData);
	if(result != 0)
	{
		LOG_ERROR_MSG("Can't initialize Windows sockets");
		return;
	}
#endif

	if(create_socket() != 0)
	{
#ifdef _WIN32
		WSACleanup();
#endif
		initialized = -1;
		return;
	}

	/* FIXME: used to call try_become_a_server() here, but it always succeeds (see
	 *        FIXME comment there), which breaks our logic. */

	atexit(&clean_at_exit);
	initialized = 1;
}
开发者ID:dennishamester,项目名称:vifm,代码行数:33,代码来源:ipc.c

示例12: netsocket_setup

int netsocket_setup(int argc, char **argv)
{
	cJSON *json;
	struct netsocket_config cfg;
	int error;

	error = read_json(argc, argv, &json);
	if (error)
		return error;

	error = json_to_config(json, &cfg);
	if (error)
		goto end;

	error = create_socket(&cfg);
	if (error)
		goto end;

	error = adjust_mcast_opts(&cfg);
	if (error) {
		close(sk);
		freeaddrinfo(addr_candidates);
		goto end;
	}
	/* Fall through. */

end:
	cJSON_Delete(json);
	return error;
}
开发者ID:NICMx,项目名称:Jool,代码行数:30,代码来源:netsocket.c

示例13: tcp_server_start

int
tcp_server_start(struct tundev_context *ctx, uv_loop_t *loop) {
    int rc;

    uv_tcp_init(loop, &ctx->inet_tcp.tcp);

    ctx->inet_tcp_fd = create_socket(SOCK_STREAM, 1);
    if ((rc = uv_tcp_open(&ctx->inet_tcp.tcp, ctx->inet_tcp_fd))) {
        logger_stderr("tcp open error: %s", uv_strerror(rc));
        exit(1);
    }

    uv_tcp_bind(&ctx->inet_tcp.tcp, &ctx->tun->addr, 0);
    if (rc) {
        logger_stderr("tcp bind error: %s", uv_strerror(rc));
        exit(1);
    }

    ctx->inet_tcp.tcp.data = ctx;
    rc = uv_listen(&ctx->inet_tcp.stream, 128, accept_cb);
    if (rc) {
        logger_stderr("tcp listen error: %s", uv_strerror(rc));
        exit(1);
    }
    return rc;
}
开发者ID:yusitek,项目名称:xTun,代码行数:26,代码来源:tcp_server_http.c

示例14: create_socket

struct bt_hci *bt_hci_new_raw_device(uint16_t index)
{
	struct bt_hci *hci;
	struct hci_filter flt;
	int fd;

	fd = create_socket(index, HCI_CHANNEL_RAW);
	if (fd < 0)
		return NULL;

	memset(&flt, 0, sizeof(flt));
	flt.type_mask = 1 << BT_H4_EVT_PKT;
	flt.event_mask[0] = 0xffffffff;
	flt.event_mask[1] = 0xffffffff;

	if (setsockopt(fd, SOL_HCI, HCI_FILTER, &flt, sizeof(flt)) < 0) {
		close(fd);
		return NULL;
	}

	hci = create_hci(fd);
	if (!hci) {
		close(fd);
		return NULL;
	}

	hci->is_stream = false;

	bt_hci_set_close_on_unref(hci, true);

	return hci;
}
开发者ID:AndroidXperia,项目名称:android_external_bluetooth_bluez,代码行数:32,代码来源:hci.c

示例15: main

int main(int argc, const char *argv[])
{
    const char* host = argv[1];                  // 目标主机
    char send_buff[SEND_BUF_SIZE];               // 发送缓冲区
    char recv_buf[RECV_BUFF_SIZE];               // 接收缓冲区
    size_t to_send_size = 0;                     // 要发送数据大小 
    int client_fd;                               // 客户端socket
    struct addrinfo *addr;                       // 存放getaddrinfo返回数据

    if (argc != 2) {
        printf("Usage:%s [host]\n", argv[0]);
        return 1;
    }


    addr = get_addr(host, "80");
    client_fd = create_socket(addr);
    connect_host(client_fd, addr);
    freeaddrinfo(addr);

    to_send_size = get_send_data(send_buff, SEND_BUF_SIZE, host);
    send_data(client_fd, send_buff, to_send_size);

    recv_data(client_fd, recv_buf, RECV_BUFF_SIZE);

    close(client_fd);
    return 0;
}
开发者ID:Taliens,项目名称:codesnip,代码行数:28,代码来源:socket_test.c


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