您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ socket_close函数代码示例

51自学网 2021-06-03 08:06:15
  C++
这篇教程C++ socket_close函数代码示例写得很实用,希望能帮到您。

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

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

示例1: sigint_handler

void sigint_handler(int signum){    // do cleanups here and free all existing variables and stuff    log_out("Closing client on: %d.../n", socket_get_fd(s));    socket_close(s);    exit(signum);}
开发者ID:zezhouliu,项目名称:fuzzy-alpaca,代码行数:7,


示例2: sizeof

/** * netplay_new: * @server               : IP address of server. * @port                 : Port of server. * @frames               : Amount of lag frames. * @cb                   : Libretro callbacks. * @spectate             : If true, enable spectator mode. * @nick                 : Nickname of user. * * Creates a new netplay handle. A NULL host means we're * hosting (user 1). * * Returns: new netplay handle. **/netplay_t *netplay_new(const char *server, uint16_t port,                       unsigned frames, const struct retro_callbacks *cb,                       bool spectate,                       const char *nick){    netplay_t *netplay = NULL;    if (frames > UDP_FRAME_PACKETS)        frames = UDP_FRAME_PACKETS;    netplay = (netplay_t*)calloc(1, sizeof(*netplay));    if (!netplay)        return NULL;    netplay->fd                = -1;    netplay->udp_fd            = -1;    netplay->cbs               = *cb;    netplay->port              = server ? 0 : 1;    netplay->spectate.enabled  = spectate;    netplay->is_server         = server == NULL;    strlcpy(netplay->nick, nick, sizeof(netplay->nick));    if(spectate)        netplay->net_cbs = netplay_get_cbs_spectate();    else        netplay->net_cbs = netplay_get_cbs_net();    if (!init_socket(netplay, server, port))    {        free(netplay);        return NULL;    }    if(!netplay_info_cb(netplay, frames))        goto error;    return netplay;error:    if (netplay->fd >= 0)        socket_close(netplay->fd);    if (netplay->udp_fd >= 0)        socket_close(netplay->udp_fd);    free(netplay);    return NULL;}
开发者ID:carriercomm,项目名称:RetroArch,代码行数:61,


示例3: udp_detach

voidudp_detach(struct socket *so){	socket_close(so->s);	/* if (so->so_m) m_free(so->so_m);    done by sofree */	sofree(so);}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:8,


示例4: QF_STACK_PUSH

void ThreadedSocketConnection::disconnect(){ QF_STACK_PUSH(ThreadedSocketConnection::disconnect)    m_disconnect = true;  socket_close( m_socket );  QF_STACK_POP}
开发者ID:filgood,项目名称:fixfeed,代码行数:8,


示例5: kill_server

/* * Used to kill the server properly when receiving SIGINT (^C). * TODO : this function should also kill all living sons of the main process, * and close the associated sockets. * (Should we store their pids in a global array ?) */static void kill_server (int signum){    /* Dummy assignment to shut the compiler up */    signum = signum;    socket_close (server_socket);    exit (EXIT_SUCCESS);}
开发者ID:Ptival,项目名称:Pire2Pire,代码行数:14,


示例6: deinit_netplay_discovery

/** Deinitialize and free Netplay discovery */void deinit_netplay_discovery(void){   if (lan_ad_client_fd >= 0)   {      socket_close(lan_ad_client_fd);      lan_ad_client_fd = -1;   }}
开发者ID:sergiobenrocha2,项目名称:RetroArch,代码行数:9,


示例7: irc_disconnect

void irc_disconnect (irc_session_t * session){	if ( session->sock >= 0 )		socket_close (&session->sock);	session->sock = -1;	session->state = LIBIRC_STATE_INIT;}
开发者ID:Aperion,项目名称:rigsofrods-next-stable,代码行数:8,


示例8: net_http_new_socket

static int net_http_new_socket(const char *domain, int port){   int fd;#ifndef _WIN32   struct timeval timeout;#endif   struct addrinfo hints, *addr = NULL;   char portstr[16] = {0};   snprintf(portstr, sizeof(portstr), "%i", port);   memset(&hints, 0, sizeof(hints));   hints.ai_family   = AF_UNSPEC;   hints.ai_socktype = SOCK_STREAM;   hints.ai_flags    = 0;   if (getaddrinfo_rarch(domain, portstr, &hints, &addr) < 0)      return -1;   if (!addr)      return -1;   fd = socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol);#ifndef _WIN32   timeout.tv_sec=4;   timeout.tv_usec=0;   setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (char*)&timeout, sizeof timeout);#endif   if (connect(fd, addr->ai_addr, addr->ai_addrlen) != 0)   {      freeaddrinfo_rarch(addr);      socket_close(fd);      return -1;   }   freeaddrinfo_rarch(addr);   if (!socket_nonblock(fd))   {      socket_close(fd);      return -1;   }   return fd;}
开发者ID:jeapostrophe,项目名称:RetroArch,代码行数:46,


示例9: ssl_socket_close

void ssl_socket_close(void *state_data){   struct ssl_state *state = (struct ssl_state*)state_data;   mbedtls_ssl_close_notify(&state->ctx);   socket_close(state->net_ctx.fd);}
开发者ID:Alcaro,项目名称:RetroArch,代码行数:8,


示例10: server_pensionerHtmlID

void server_pensionerHtmlID(socket_t * client, resource_t * lt, http_request_t * req){    char buf[10000] = "";    char * p = strstr(req->uri, "/pensioners/");    p = p + 12;    int index = atoi(p);    if(index >= 0)    {        for(int i = 0; i < resource_getCnt(lt); i++)        {            if(index == resource_getID(lt, i))            {                if(strcmp(req->method, "GET") == 0)                {                    char pText[1000] = "";                    char * text = pensioner_toHTML(resource_getbyId(lt, index), index);                    strcat(pText, text);                    char * pageText = "<a href=/"http://127.0.0.1:5000/pensioners/"><br>Back to the list.</a>";                    strcat(pText, pageText);                    char * textHtml = textToBuf_HTML(pText);                    strcat(buf, textHtml);                    free(textHtml);                }                else if(strcmp(req->method, "DELETE") == 0)                {                    char pText[1000] = "";                    char * text = pensioner_toHTML(resource_deletePens(lt, index), index);                    strcat(pText, text);                    free(text);                    sprintf(buf,                            "HTTP/1.1 200 OK/n"                            "Access-Control-Allow-Origin: */n"                            "Access-Control-Allow-Methods: DELETE/n"                            "/n");                }            }        }        char * message = "<h3 style=/"color:orange/">ID not found!</h3>";        char * textHtml = textToBuf_HTML(message);        strcat(buf, textHtml);        free(textHtml);    }    else    {        char * message = "<h3 style=/"color:orange/">ID not found!</h3>";        char * textHtml = textToBuf_HTML(message);        strcat(buf, textHtml);        free(textHtml);    }    socket_write_string(client, buf);    socket_close(client);}
开发者ID:DariaDar,项目名称:Reposit,代码行数:58,


示例11: server_post

static void server_post(http_request_t request, socket_t* client, leading_t** leadings){    int id = 0;    int count = leading_leadingsCount(leadings);    char buffer[2000] ="";    char* str;    char* name = http_request_getArg(&request, "name");    char* surname = http_request_getArg(&request, "surname");    char* birthdate = http_request_getArg(&request, "birthdate");    char* experience = http_request_getArg(&request, "experience");    char* rating = http_request_getArg(&request, "rating");    if(strlen(name) <= 1 || strlen(surname) <= 1 || strlen(birthdate) <= 1){        server_send(client, "Name/Surname/Birthday wasn't filled in"                            "<p><a href=/"/leadings/new//">Back to POST</a></p>");        return;    }    str = birthdate;   if(strlen(birthdate) > 10 || str[4] != '-' || str[7] != '-' || isdigit(birthdate[0])==0 || isdigit(experience[0]) == 0 || isdigit(rating[0])==0){        server_send(client, "Wrong data!"                    "<p><a href=/"/leadings/new//">Back to POST</a></p>");        return;    }    if(experience == " ")        experience = "0";    if(rating == " ")        rating = "0.0";    if(count >= MAX_LEADINGS){        char fail[] = "Limit of leadings!";        sprintf(buffer,            "HTTP/1.1 404 /n"            "Content-Type: text/n"            "Content-Length: %i/r/n/r/n"            "/n%s", strlen(fail), fail);        socket_write_string(client, buffer);        socket_close(client);        return;    }    for(int i = 0; i<MAX_LEADINGS; i++, id++)    {        if(leading_getId(leadings[i]) == -1)            break;    }    int exp = atoi(experience);    double rate = atof(rating);    leading_fill(leadings[id], id, name, surname, birthdate, exp, rate);    server_send(client, "Success"                "<p><a href=/"/leadings//">All leadings</a></p>");}
开发者ID:AndrienkoF,项目名称:KPIRepo,代码行数:58,


示例12: socket_tcp_listen

int socket_tcp_listen(const char *hostname, const char *port) {	// NULL port / service name is not accepted.	// NULL hostname is OK. (== bind to any interface)	if (!port) {		return -1;	}	struct addrinfo *address, hints;	memset(&hints, 0, sizeof(hints));	hints.ai_family = AF_INET6;	hints.ai_socktype = SOCK_STREAM;	hints.ai_flags = AI_PASSIVE | AI_ALL | AI_V4MAPPED;	int r = -1;		if (0 != (r = getaddrinfo(hostname, port, &hints, &address))) {		return -1;	}	int fd = -1;	for (struct addrinfo *iter = address; iter; iter = iter->ai_next) {		if (-1 == (fd = socket(iter->ai_family, iter->ai_socktype, address->ai_protocol))) {			perror("socket");			continue;		}		int yes = 1;		if (-1 == setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes))) {			perror("setsockopt");			socket_close(&fd);			continue;		}		if (-1 == bind(fd, iter->ai_addr, iter->ai_addrlen)) {			perror("bind");			socket_close(&fd);			continue;		}		if (-1 == listen(fd, 128)) {			perror("listen");			socket_close(&fd);		}		// Success		break;	}	freeaddrinfo(address);	return fd;}
开发者ID:andyn,项目名称:httpdns,代码行数:45,


示例13: nettest5

int nettest5(void){	int err;	sockaddr addr;	int new_fd;	fd = socket_create(SOCK_PROTO_TCP, 0);	printf("created socket, fd %d/n", fd);	if(fd < 0)		return 0;	memset(&addr, 0, sizeof(addr));	addr.addr.len = 4;	addr.addr.type = ADDR_TYPE_IP;	addr.port = 1900;	NETADDR_TO_IPV4(addr.addr) = IPV4_DOTADDR_TO_ADDR(0,0,0,0);	err = socket_bind(fd, &addr);	printf("socket_bind returns %d/n", err);	if(err < 0)		return 0;	err = socket_listen(fd);	printf("socket_listen returns %d/n", err);	if(err < 0)		return 0;	new_fd = socket_accept(fd, &addr);	printf("socket_accept returns %d/n", new_fd);	if(new_fd < 0)		return 0;	err = socket_write(new_fd, "hello world!/n", strlen("hello world!/n"));	printf("socket_write returns %d/n", err);	printf("sleeping for 5 seconds/n");	usleep(5000000);	printf("closing fd %d/n", new_fd);	socket_close(new_fd);	printf("closing fd %d/n", fd);	socket_close(fd);	return 0;}
开发者ID:HTshandou,项目名称:newos,代码行数:45,


示例14: main

int main(int argc, char* argv[]) {  gint error = 0;  options_init(argc - 1, argv + 1);  INFO("Starting up.");  descriptor_init();  DEBUG("Disabling SIGPIPE.");  signal(SIGPIPE, SIG_IGN);  DEBUG("Creating ZeroMQ context.");  gpointer zmq_context = zmq_init(options_zmq_io_threads());  if (zmq_context == NULL) {    PERROR("main(zmq_init)");    error = 1;    goto err0;  }  DEBUG("Creating server on port %s.", options_port());  gint socket = socket_server(options_port());  if (socket == -1) {    error = 1;    goto err1;  }  INFO("Initialising Lua API.");  lua_api_init(zmq_context, argc - 1, argv + 1);  lua_State* lua = lua_api_get();  DEBUG("Running " LUA_START_FILE);  if (luaL_dofile(lua, LUA_START_FILE) == 1) {    ERROR("%s", lua_tostring(lua, -1));    error = 1;    goto err2;  }  io_mainloop(socket); err2:  DEBUG("Closing server socket.");  socket_close(socket); err1:  DEBUG("Terminating ZeroMQ context.");  /* This is separate from lua_api_deinit() to prevent zmq_term() from     blocking forever. */  lua_zmq_deinit();  zmq_term(zmq_context); err0:  DEBUG("Enabling SIGPIPE.");  signal(SIGPIPE, SIG_DFL);  options_deinit();  descriptor_deinit();  if (lua_api_get() != NULL) {    DEBUG("Closing Lua state.");    lua_api_deinit();  }  return error;}
开发者ID:bodrich,项目名称:MudCore,代码行数:57,


示例15: listener_release

void listener_release(struct listener *self) {	assert(self != NULL);	assert(!self->isfree);	if (!self)		return;	socket_close(&self->sockfd);	self->isfree = true;	netpool_releaselisten(self);}
开发者ID:Manhelp,项目名称:lxnet,代码行数:9,


示例16: st_local_socket_close

static intst_local_socket_close(int sd){	if (!use_obp) {		return (socket_close(sd));	} else {		return (0);	}}
开发者ID:andreiw,项目名称:polaris,代码行数:9,


示例17: player_close

void player_close(player_info_t *player) {	socket_close(player->socket);	if ( player == players ) {		players = player->next;	} else {		player->prev->next = player->next;	}	free(player);}
开发者ID:lszabi,项目名称:adventure,代码行数:9,


示例18: net_http_delete

void net_http_delete(struct http_t *state){   if (!state)      return;   if (state->fd >= 0)      socket_close(state->fd);   free(state);}
开发者ID:Alexandre-Garcia,项目名称:RetroArch,代码行数:9,


示例19: ClientNetworkLayerClose

static void ClientNetworkLayerClose(UA_Connection *connection) {    if(connection->state == UA_CONNECTION_CLOSED)        return;    connection->state = UA_CONNECTION_CLOSED;    socket_close(connection);#ifndef UA_MULTITHREADING    UA_ByteString_delete(connection->handle);#endif}
开发者ID:tpiat,项目名称:open62541,代码行数:9,


示例20: ipc_server_close

int ipc_server_close(int fd, int last_error){    int ret = 0;        if (!last_error)	ret = ipc_server_sync(fd);    socket_close(fd);    return ret;}
开发者ID:livebox,项目名称:livebox2,代码行数:9,


示例21: rarch_cmd_free

void rarch_cmd_free(rarch_cmd_t *handle){#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)   if (handle && handle->net_fd >= 0)      socket_close(handle->net_fd);#endif   free(handle);}
开发者ID:jeapostrophe,项目名称:RetroArch,代码行数:9,


示例22: tcp_close

static int tcp_close(FdMigrationState *s){    dprintf("tcp_close/n");    if (s->fd != -1) {        socket_close(s->fd);        s->fd = -1;    }    return 0;}
开发者ID:ecit241,项目名称:qemu-android,代码行数:9,


示例23: socket_dev_close

static int socket_dev_close(dev_cookie cookie){	socket_dev *s = (socket_dev *)cookie;	if(s->id >= 0)		return socket_close(s->id);	else		return 0;}
开发者ID:HTshandou,项目名称:newos,代码行数:9,


示例24: test_server_accept

/* * Test a single listening socket.  Accepts one connection and invokes * test_server_connection.  For skipping purposes, this produces two tests. */static voidtest_server_accept(socket_type fd){    socket_type client;    client = accept(fd, NULL, NULL);    test_server_connection(client);    socket_close(fd);}
开发者ID:moretension,项目名称:remctl,代码行数:13,


示例25: pbpal_free

void pbpal_free(pubnub_t *pb){    if (pb->pal.socket != SOCKET_INVALID) {        /* While this should not happen, it doesn't hurt to be paranoid.         */        pbntf_lost_socket(pb, pb->pal.socket);        socket_close(pb->pal.socket);    }}
开发者ID:evanbeard,项目名称:c-core,代码行数:9,


示例26: main

int main() {    lib_init();    list_t* list=list_new();    lanser * freeLanser[10];    for (int i = 0; i < 10; i++)        freeLanser[i] = Freelanser_new();  //  parse(freeLanser);    socket_t * serverSocket = socket_new();    socket_bind(serverSocket, 5000);    socket_listen(serverSocket);   while (1) {        socket_t * clientSocket = socket_accept(serverSocket);        char buf[10000]="";        if (!socket_read(clientSocket, buf, sizeof(buf))) {            puts("Skipping empty request");            socket_close(clientSocket);            socket_free(clientSocket);            continue;        }        http_request_t req = http_request_parse(buf);        server_answer(list,req,clientSocket,freeLanser);        socket_close(clientSocket);        socket_free(clientSocket);    }    socket_close(serverSocket);    socket_free(serverSocket);    lib_free();    list_free(list);    return 0;}
开发者ID:vitalik296,项目名称:CoursesRepo,代码行数:44,


示例27: get_valid_rtp_pair_sockets

/**unsigned short  get_valid_rtp_pair_sockets(int min, int max, int* rtp, int* rtcp)min
C++ socket_connect函数代码示例
C++ socket_accept函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。