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

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

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

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

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

示例1: senddata

/** * Function: senddata * Description: 串口客户端UDP发送数据的接口函数 * @param conn 当前UDP的连接 * @param serial_no UDP连接对应的串口号 * @param data_length 要发送的数据长度**/uint8_t senddata(struct udp_pcb *conn,uint8_t serial_no,uint32_t data_length) {    uint32_t send_length = 0;	struct pbuf *udp_data_packet;	uint32_t loc = 0;	err_t err_status;	do {				if(data_length >= UDP_MSS) {            send_length = UDP_MSS;        } else {            send_length = data_length;        }		udp_data_packet = pbuf_alloc(PBUF_RAW,send_length,PBUF_RAM);		if(!udp_data_packet){			printf("serial udp memory allocate/n/r");			return 0;		}        memset(udp_data_packet->payload,0,send_length);		memcpy(udp_data_packet->payload,&serial_client.client_queue_data_buf[serial_no][loc],send_length);		err_status = udp_send(conn,udp_data_packet);		loc += send_length;        data_length -= send_length;		if(udp_data_packet){			pbuf_free(udp_data_packet);			udp_data_packet = NULL;		}    } while(data_length > 0);	if(serial_client.client_queue_data_buf[serial_no]){		free(serial_client.client_queue_data_buf[serial_no]);		serial_client.client_queue_data_buf[serial_no] = NULL;	}	return 1;}
开发者ID:JasonYSU,项目名称:VETH3000Switch,代码行数:40,


示例2: receive_tweet

void receive_tweet(char* buffer, struct sockaddr_in* server){    struct sockaddr_in client;    int transfered = 0, timeoutcount = 0;    /* Get message from message server */    if (!udp_send(sock, "Gimmeh!", server, sizeof(struct sockaddr_in)))        error_and_exit("Cannot send message to server", __FILE__, __LINE__);    do {        transfered = udp_receive(sock, buffer, BUFSIZE, &client, sizeof(client));        if (transfered == -1)         {            if (errno == EAGAIN || errno == EWOULDBLOCK)             {                ++timeoutcount;                if (timeoutcount >= MAX_TIMEOUTS)                 {                    printf("Maximum timeouts exceeded. Server is considered dead.");                    exit(0);                }                printf("Server timed out (%d)./n", timeoutcount);            }            error_and_exit("Cannot read from server", __FILE__, __LINE__);        }         else if (transfered == 0)         {            error_and_exit("Server has shut down", __FILE__, __LINE__);        }    } while (transfered <= 0);     if (server->sin_addr.s_addr != client.sin_addr.s_addr)        error_and_exit("Received message from unexpected server", __FILE__, __LINE__);}
开发者ID:vrld,项目名称:twat,代码行数:34,


示例3: rtp_send

/** * Send an RTP packet to a peer * * @param rs     RTP Socket * @param dst    Destination address * @param ext    Extension bit * @param marker Marker bit * @param pt     Payload type * @param ts     Timestamp * @param mb     Payload buffer * * @return 0 for success, otherwise errorcode */int rtp_send(struct rtp_sock *rs, const struct sa *dst, bool ext,	     bool marker, uint8_t pt, uint32_t ts, struct mbuf *mb){	size_t pos;	int err;	if (!rs || !mb)		return EINVAL;	if (mb->pos < RTP_HEADER_SIZE) {		DEBUG_WARNING("rtp_send: buffer must have space for"			      " rtp header (pos=%u, end=%u)/n",			      mb->pos, mb->end);		return EBADMSG;	}	mbuf_advance(mb, -RTP_HEADER_SIZE);	pos = mb->pos;	err = rtp_encode(rs, ext, marker, pt, ts, mb);	if (err)		return err;	if (rs->rtcp)		rtcp_sess_tx_rtp(rs->rtcp, ts, mbuf_get_left(mb));	mb->pos = pos;	return udp_send(rs->sock_rtp, dst, mb);}
开发者ID:hbowden,项目名称:re,代码行数:44,


示例4: main

int main (void){    zctx_t *ctx = zctx_new ();    udp_t *udp = udp_new (PING_PORT_NUMBER);        byte buffer [PING_MSG_SIZE];    zmq_pollitem_t pollitems [] = {{ NULL, udp_handle (udp), ZMQ_POLLIN, 0 }};        //  Send first ping right away    uint64_t ping_at = zclock_time ();        while (!zctx_interrupted) {        long timeout = (long) (ping_at - zclock_time ());        if (timeout < 0)            timeout = 0;        if (zmq_poll (pollitems, 1, timeout * ZMQ_POLL_MSEC) == -1)            break;              //  Interrupted        //  Someone answered our ping        if (pollitems [0].revents & ZMQ_POLLIN)            udp_recv (udp, buffer, PING_MSG_SIZE);                if (zclock_time () >= ping_at) {            puts ("Pinging peers...");            buffer [0] = '!';            udp_send (udp, buffer, PING_MSG_SIZE);            ping_at = zclock_time () + PING_INTERVAL;        }    }    udp_destroy (&udp);    zctx_destroy (&ctx);    return 0;}
开发者ID:AvdN,项目名称:zguide,代码行数:33,


示例5: do_send

/** * Send some data on a RAW or UDP pcb contained in a netconn * Called from netconn_send * * @param msg the api_msg_msg pointing to the connection */voiddo_send(struct api_msg_msg *msg){  if (!ERR_IS_FATAL(msg->conn->err)) {    if (msg->conn->pcb.tcp != NULL) {      switch (NETCONNTYPE_GROUP(msg->conn->type)) {#if LWIP_RAW      case NETCONN_RAW:        if (msg->msg.b->addr == NULL) {          msg->conn->err = raw_send(msg->conn->pcb.raw, msg->msg.b->p);        } else {          msg->conn->err = raw_sendto(msg->conn->pcb.raw, msg->msg.b->p, msg->msg.b->addr);        }        break;#endif#if LWIP_UDP      case NETCONN_UDP:        if (msg->msg.b->addr == NULL) {          msg->conn->err = udp_send(msg->conn->pcb.udp, msg->msg.b->p);        } else {          msg->conn->err = udp_sendto(msg->conn->pcb.udp, msg->msg.b->p, msg->msg.b->addr, msg->msg.b->port);        }        break;#endif /* LWIP_UDP */      default:        break;      }    }  }  TCPIP_APIMSG_ACK(msg);}
开发者ID:BlueSkyGjj,项目名称:nRF52,代码行数:37,


示例6: udpmsg_receive

// This is a very weird function, look at udpCheckReceiveFork() in matlab.c for the "why"int udpmsg_receive(udpmsg *packet) {	 char recv_buf[MAXMSGLENGTH+10];	 char senderIP[16]; // "xxx.xxx.xxx.xxx/0"	 int ret = 0;	 if(udp_check(0)) {		 udp_read(recv_buf, sizeof(recv_buf), senderIP);		 //	printf("%s/n", senderIP);		 // First if clause determines whether message is from Psychtoolbox		 if (!strcmp(senderIP, macIP)) {			 if(strlen(recv_buf)>10 && recv_buf[9]==' ' && strcmp(recv_buf,last_recv)!=0) {				 strcpy(last_recv, recv_buf);				 strncpy(packet->id, recv_buf, 9);				 packet->id[9] = 0;				 strcpy(packet->msg, recv_buf+10);				 if (strcmp(packet->msg,"RECEIVED")==0)				   packet->received = 1;				 else if (strcmp(packet->msg,"EXECUTED")==0)				   packet->executed = 1;				 else {					 /* if it is a new message confirm its receipt */					 strcpy(recv_buf+10, "RECEIVED");					 udp_send(recv_buf, macIP);				 }				 				 ret = 1;			 }       		 }	 }	 return ret; }
开发者ID:sshruth,项目名称:abstract_dots_NS,代码行数:34,


示例7: do_send

static voiddo_send(struct api_msg_msg *msg){  if (msg->conn->pcb.tcp != NULL) {    switch (msg->conn->type) {#if LWIP_RAW    case NETCONN_RAW:      raw_send(msg->conn->pcb.raw, msg->msg.p);      break;#endif#if LWIP_UDP    case NETCONN_UDPLITE:      /* FALLTHROUGH */    case NETCONN_UDPNOCHKSUM:      /* FALLTHROUGH */    case NETCONN_UDP:      udp_send(msg->conn->pcb.udp, msg->msg.p);      break;#endif /* LWIP_UDP */    case NETCONN_TCP:      break;    }  }  sys_mbox_post(msg->conn->mbox, NULL);}
开发者ID:YTakami,项目名称:makecontroller,代码行数:25,


示例8: udp_broadcast

int udp_broadcast (const char *address,                   unsigned int port,                   const paxos_message_t *message){  udp_client_t client;  int sock;  int ret;  if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)    return(-1);  ret = 1;  if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &ret, sizeof(int)) < 0) {    close(sock);    return(-1);  }  memset(&(client.addr), 0, sizeof(struct sockaddr_in));  client.addr.sin_family = AF_INET;  client.addr.sin_addr.s_addr = inet_addr(address);  //client.addr.sin_addr.s_addr = inet_addr("127.255.255.255");  //addr.sin_addr.s_addr = inet_addr("255.255.255.255");  client.addr.sin_port = htons(port);  client.addrlen = sizeof(struct sockaddr_in);  ret = udp_send(sock, &client, message);  close(sock);  return(ret != sizeof(paxos_message_t));}
开发者ID:matteobertozzi,项目名称:experiments,代码行数:30,


示例9: lwipv4_socket_send

socket_error_t lwipv4_socket_send(struct socket *socket, const void * buf, const size_t len){    err_t err = ERR_VAL;    switch(socket->family) {    case SOCKET_DGRAM: {        struct pbuf *pb = pbuf_alloc(PBUF_TRANSPORT,len,PBUF_RAM);        socket_event_t e;        socket_api_handler_t handler = socket->handler;        err = pbuf_take(pb, buf, len);        if (err != ERR_OK)            break;        err = udp_send(socket->impl, pb);        pbuf_free(pb);        if (err != ERR_OK)            break;        //Notify the application that the transfer is queued at the MAC layer        e.event = SOCKET_EVENT_TX_DONE;        e.sock = socket;        e.i.t.sentbytes = len;        socket->event = &e;        handler();        socket->event = NULL;        break;    }    case SOCKET_STREAM:        err = tcp_write(socket->impl,buf,len,TCP_WRITE_FLAG_COPY);        break;    }    return lwipv4_socket_error_remap(err);}
开发者ID:MU-Electronics,项目名称:mbed3_frdm,代码行数:30,


示例10: dhcp_release

static err_t dhcp_release(struct dhcp_state *state){  err_t result;  u16_t msecs;  DEBUGF(DHCP_DEBUG, ("dhcp_release()/n"));  // and idle DHCP client  dhcp_set_state(state, DHCP_OFF);  // create and initialize the DHCP message header  result = dhcp_create_request(state);  if (result == ERR_OK)  {    dhcp_option(state, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);    dhcp_option_byte(state, DHCP_RELEASE);    dhcp_option_trailer(state);    pbuf_realloc(state->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + state->options_out_len);    udp_bind(state->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT);    udp_connect(state->pcb, &state->server_ip_addr, DHCP_SERVER_PORT);    udp_send(state->pcb, state->p_out);    dhcp_delete_request(state);  }  state->tries++;  msecs = state->tries < 10 ? state->tries * 1000 : 10 * 1000;  state->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;  DEBUGF(DHCP_DEBUG, ("dhcp_release(): request timeout %u msecs/n", msecs));  // remove IP address from interface  netif_set_ipaddr(state->netif, IP_ADDR_ANY);  netif_set_gw(state->netif, IP_ADDR_ANY);  netif_set_netmask(state->netif, IP_ADDR_ANY);  return result;}
开发者ID:dafyddcrosby,项目名称:L4OS,代码行数:34,


示例11: send_packet

/** * Function: send_packet * Description: 向NTP服务器发送NTP数据包,请求时间更新 * @param usd 标志位,目前统一使用1**/int send_packet(int usd) {    //char ntp_header[200];	struct pbuf *ntp_packet;	err_t err_result;	memset(&ntp_client,0,sizeof(ntp_client));	ntp_packet = pbuf_alloc(PBUF_RAW,sizeof(ntp_client),PBUF_RAM);	if(!ntp_packet){		printf("ntp pbuf allocate failed/n/r");		return -1;	}	NTP_Init();	memset(ntp_packet->payload,0,sizeof(ntp_client));	memcpy(ntp_packet->payload,(void*)&ntp_client,sizeof(ntp_client));	    /*客户端给服务器端发送NTP协议数据包*/		err_result = udp_send(ntp_udp_client,ntp_packet);	if(err_result == ERR_OK){   //数据发送成功		//释放pbuf空间		pbuf_free(ntp_packet);	}else{		printf("ntp packet send failed/n/r");		return -1;	}	is_open_ntp_request_timer = 1;	ntp_send_request_time = sCount;	//printf("NTP request has sent over/n/r");}
开发者ID:JasonYSU,项目名称:VETH3000Switch,代码行数:33,


示例12: dhcp_decline

// decline astatic err_t dhcp_decline(struct dhcp_state *state){  err_t result = ERR_OK;  u16_t msecs;  DEBUGF(DHCP_DEBUG, ("dhcp_decline()/n"));  dhcp_set_state(state, DHCP_BACKING_OFF);  // create and initialize the DHCP message header  result = dhcp_create_request(state);  if (result == ERR_OK)  {    dhcp_option(state, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN);    dhcp_option_byte(state, DHCP_DECLINE);    dhcp_option(state, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN);    dhcp_option_short(state, 576);    dhcp_option_trailer(state);    // resize pbuf to reflect true size of options    pbuf_realloc(state->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + state->options_out_len);    udp_bind(state->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT);    udp_connect(state->pcb, &state->server_ip_addr, DHCP_SERVER_PORT);    udp_send(state->pcb, state->p_out);    dhcp_delete_request(state);  }  state->tries++;  msecs = 10*1000;  state->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS;  DEBUGF(DHCP_DEBUG, ("dhcp_decline(): request timeout %u msecs/n", msecs));  return result;}
开发者ID:dafyddcrosby,项目名称:L4OS,代码行数:32,


示例13: udpd_Send

/* * 函数名:updd_Send * 描述  :发送udp数据包 * 输入  :无 * 输出  : 无 * 调用  :外部调用 */void udpd_Send(void){	struct udp_pcb *UdpPcb;   struct ip_addr ipaddr;   struct pbuf *p;	err_t err = ERR_Mine;	//测试用		p = pbuf_alloc(PBUF_RAW,sizeof(UDPData),PBUF_RAM);   p->payload=(void *)UDPData;    	UdpPcb = udp_new(); 	udp_bind(UdpPcb,IP_ADDR_ANY,6000);       /* 绑定本地IP 地址 */   IP4_ADDR(&ipaddr,192,168,1,122);     err = udp_connect(UdpPcb,&ipaddr,6001);   /* 连接远程主机 */ 		if(err == ERR_OK)	{		err = ERR_Mine;	//测试用		err = udp_send(UdpPcb, p);	}		udp_disconnect(UdpPcb);	pbuf_free(p);	udp_remove(UdpPcb);}
开发者ID:Micah2015,项目名称:STM32_LwIP,代码行数:33,


示例14: main

int main(int argc, char** argv){	if(argc != 4  && argc != 2){		printf("/nSYTAX: <(s)end/(r)ecv> xxx.xxx.xxx.xxx  /"Message (if sending)/"");		exit(0);	}	if(argv[1][0] == 's'){		char *addr;		char *msg;		size_t msg_len = strlen(argv[3])+1;		int add_len = strlen(argv[2]);		msg=malloc(msg_len);		strcpy(msg,argv[3]);		addr = malloc(add_len);		memcpy(addr,argv[2],add_len);		udp_send(addr,d_port,d_port,&msg,&msg_len);	}	else if (argv[1][0] == 'r'){		size_t size;		size = (size_t) 512;		char* msg;		msg = malloc(size);		udp_listen(d_port,&msg,size);		printf("Received : /n%s",msg);	}	return 0;}
开发者ID:mdj20,项目名称:piware,代码行数:28,


示例15: mgcp_send_dummy

int mgcp_send_dummy(struct mgcp_endpoint *endp){	static char buf[] = { DUMMY_LOAD };	return udp_send(endp->net_end.rtp.fd, &endp->net_end.addr,			endp->net_end.rtp_port, buf, 1);}
开发者ID:shimaore,项目名称:openbsc,代码行数:7,


示例16: client_init

void client_init(void){    struct udp_pcb *upcb;    struct pbuf *p;    SET_IP4_ADDR(&ip_udp_server,UDP_SERVER_IP);    /* Create a new UDP control block  */    upcb = udp_new();    p = pbuf_alloc(PBUF_TRANSPORT, sizeof(Sent), PBUF_RAM);    p->payload = (void*)Sent;    upcb->local_port = 5;    udp_connect(upcb, &ip_udp_server, UDP_SERVER_PORT);    udp_send(upcb, p);    /* Reset the upcb */    udp_disconnect(upcb);    /* Bind the upcb to any IP address and the UDP_PORT port*/    udp_bind(upcb, IP_ADDR_ANY, 5);    udp_recv(upcb, udp_client_callback, NULL);    /* Free the p buffer */    pbuf_free(p);}
开发者ID:fanqh,项目名称:ETH_Mange,代码行数:29,


示例17: msg_init_queue

void *_send(void *args){    (void) args;    msg_init_queue(_send_msg_queue, MAIN_QUEUE_SIZE);    char *arg[4];    char *cmd = "udp_send";    char *dst = "abcd::1";    char *port = "8888";    char rank[12];    arg[0] = cmd;    arg[1] = dst;    arg[2] = port;    while(1) {        xtimer_sleep(2);        if (gnrc_rpl_instances[0].state && gnrc_rpl_instances[0].dodag.my_rank == GNRC_RPL_ROOT_RANK) {            return NULL;        }        if (gnrc_rpl_instances[0].state) {            memset(rank, 0, sizeof(rank));            sprintf(rank, "%u", gnrc_rpl_instances[0].dodag.my_rank);            arg[3] = rank;            udp_send(4, arg);        }    }    return NULL;}
开发者ID:cgundogan,项目名称:RIOT-APPS,代码行数:30,


示例18: send_rescueack

extern int send_rescueack(unsigned short no, unsigned short lo){	ebuf_t *buf = NULL;	int acksocket;	char tftpnull;	int res, i;	/*	 * Open a UDP socket to the TFTP server	 */	acksocket = udp_socket(UDP_PROTO_TFTP);	res = udp_bind(acksocket, 69);	if (res < 0) {		return res;	}	udp_connect(acksocket, ackport);	for (i = 0; i < 1; i++) {		buf = udp_alloc();		if (!buf)			return -1;		/*		 * Send the data		 */		ebuf_append_u16_be(buf, no);		ebuf_append_u16_be(buf, lo);		ebuf_append_bytes(buf,&tftpnull, 0);		udp_send(acksocket ,buf, tftpipto);	}	if (buf)		udp_free(buf);	udp_close(acksocket);	return 0;}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:33,


示例19: mdns_probe

void mdns_probe(){	len_self = _update_hook_self(config.name);	len_instance = _update_hook_instance(config.name);	len_arpa = _update_hook_arpa(config.comm.ip);	int i;	for(i=0; i<3; i++)	{		uint8_t *head = BUF_O_OFFSET(buf_o_ptr);		uint8_t *tail = head;				uint16_t id = rand() & 0xffff;		tail = _serialize_query(tail, id, MDNS_FLAGS_AA, 0, 1, 0, 0);		tail = _serialize_question(tail, hook_self, MDNS_TYPE_ANY, MDNS_CLASS_INET);				udp_send(config.mdns.socket.sock, BUF_O_BASE(buf_o_ptr), tail-head);		// wait 250ms second		uint32_t tick = systick_uptime();		while(systick_uptime() - tick < SNTP_SYSTICK_RATE / 4)			;		//FIXME listen for collisions with hook_self	}}
开发者ID:OpenMusicKontrollers,项目名称:chimaera_firmware,代码行数:26,


示例20: _tftp_close

static int _tftp_close(tftp_info_t *info){    ebuf_t *buf;    const char *emsg = "transfer cancelled";	/* some error message */    if (info->tftp_socket == -1) return 0;    if (info->tftp_filemode == FILE_MODE_READ) {	buf = udp_alloc();	if (buf) {	    /* If we're on the EOF packet, just send an ack */	    if (info->tftp_lastblock) {		ebuf_append_u16_be(buf,TFTP_OP_ACK);		ebuf_append_u16_be(buf,info->tftp_blknum);		}	    else {		ebuf_append_u16_be(buf,TFTP_OP_ERROR);		ebuf_append_u16_be(buf,TFTP_ERR_DISKFULL);		ebuf_append_bytes(buf,emsg,strlen(emsg)+1);		}	    udp_send(info->tftp_socket,buf,info->tftp_ipaddr);	    }	}    else {	/* Just flush out the remaining write data, if any */	_tftp_writemore(info);	}    udp_close(info->tftp_socket);    info->tftp_socket = -1;    return 0;}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:32,


示例21: lwip_udp_send

// Helper function for send/sendto to handle UDP packets.STATIC mp_uint_t lwip_udp_send(lwip_socket_obj_t *socket, const byte *buf, mp_uint_t len, byte *ip, mp_uint_t port, int *_errno) {    if (len > 0xffff) {        // Any packet that big is probably going to fail the pbuf_alloc anyway, but may as well try        len = 0xffff;    }    // FIXME: maybe PBUF_ROM?    struct pbuf *p = pbuf_alloc(PBUF_TRANSPORT, len, PBUF_RAM);    if (p == NULL) {        *_errno = ENOMEM;        return -1;    }    memcpy(p->payload, buf, len);    err_t err;    if (ip == NULL) {        err = udp_send(socket->pcb.udp, p);    } else {        ip_addr_t dest;        IP4_ADDR(&dest, ip[0], ip[1], ip[2], ip[3]);        err = udp_sendto(socket->pcb.udp, p, &dest, port);    }    pbuf_free(p);    if (err != ERR_OK) {        *_errno = error_lookup_table[-err];        return -1;    }    return len;}
开发者ID:TDAbboud,项目名称:micropython,代码行数:34,


示例22: pxudp_pcb_forward_inbound

static voidpxudp_pcb_forward_inbound(struct pxudp *pxudp){    struct pbuf *p;    u32_t timo;    err_t error;    if (!sys_mbox_valid(&pxudp->inmbox)) {        return;    }    timo = sys_mbox_tryfetch(&pxudp->inmbox, (void **)&p);    if (timo == SYS_MBOX_EMPTY) {        return;    }    error = udp_send(pxudp->pcb, p);    if (error != ERR_OK) {        DPRINTF(("%s: udp_send(pcb %p) err %d/n",                 __func__, (void *)pxudp, error));    }    pbuf_free(p);    /*     * If we enabled counting in pxudp_pcb_forward_outbound() check     * that we have (all) the reply(s).     */    if (pxudp->count > 0) {        --pxudp->count;        if (pxudp->count == 0) {            pxudp_pcb_expired(pxudp);        }    }}
开发者ID:eaas-framework,项目名称:virtualbox,代码行数:35,


示例23: udp_send_all

int udp_send_all(int socket, struct in_addr *iface, const struct sockaddr* to, int to_len, int out_len){	struct ifconf	ifc;	char 		buf[1024] = { 0 };	struct ifreq	*ifr = 0;	struct in_addr	from;	int		i;	int		rc = 0;	char		ip[64];	/* Send through all interfaces */	ifc.ifc_len = sizeof(buf);	ifc.ifc_buf = buf;	ioctl(socket, SIOCGIFCONF, &ifc);	ifr = ifc.ifc_req;	for(i=0; i<(ifc.ifc_len/sizeof(*ifr)); i++) {		from.s_addr = ((struct sockaddr_in *)&ifr[i].ifr_addr)->sin_addr.s_addr;		if (iface->s_addr != INADDR_ANY && iface->s_addr != from.s_addr)			continue;		if (udp_send(socket, from, to, to_len, out_len) == 1) {			inet_ntop(AF_INET, &from.s_addr, ip, sizeof(ip));			wsdd_log(LOG_ERR, "Failed to send udp from %s/n", ip);			rc = -1;		}	}	return rc;}
开发者ID:angelkyo,项目名称:openwrt-maz1,代码行数:30,


示例24: send_packet

/* send one packet (heartbeat) */int send_packet(void){	static long sequence;	auto char 	buf[128];	auto int 	length, retval;	#GLOBAL_INIT	{		sequence = 0;	}	/* fill the packet with interesting data (a sequence number) */	sequence++;	sprintf(buf, "SEQ=%ld",sequence);	length = strlen(buf) + 1;	/* send the packet */	retval = udp_send(&sock, buf, length);	if (retval < 0) {		printf("Error sending datagram!  Closing and reopening socket.../n");		if (sequence == 1) {			printf("   (initial ARP request may not have finished)/n");		}		sock_close(&sock);		if(!udp_open(&sock, LOCAL_PORT, resolve(REMOTE_IP), REMOTE_PORT, NULL)) {			printf("udp_open failed!/n");			exit(0);		}	}	tcp_tick(NULL);		return 1;}
开发者ID:jgambox,项目名称:DCRabbit_9,代码行数:34,


示例25: msg_treatment

static int msg_treatment(void){	int err = 0, msg_t = 0, i = 0;	char path[MAXLEN], *msg;	msg_st requete;	MD5_CTX context;	unsigned char md[MD5_DIGEST_LENGTH];	char mdascii[2*MD5_DIGEST_LENGTH+1];	char alert_msg[MAXLEN] = { "" };	/* receive message from mailbox */	err = msgrcv(file_id, &requete, sizeof(msg_st),			     TYPE_DTH_ASYNCH, 0);	if (err < 0) {		printf("message can't be received (%s)/n",		       strerror(err));		return -1;	}	msg = malloc(strlen(addr_interface_s) + MD5_SIZE +				strlen(requete.message) * sizeof(char));	/* extract path and message type */	sscanf(requete.message, "%s %d %254c", path, &msg_t, alert_msg);	printf("msg received => %s",requete.message);	if (debug)		printf("extract path=> %s/nextract message type=>%d/nalert notification=>%s/n", path, msg_t,alert_msg);	/* compute MD5 */	MD5_Init(&context);	MD5_Update(&context, path, strlen(path));	MD5_Final(md, &context);	/* Convert raw valure to ascii */	memset(mdascii, 0, 2*MD5_DIGEST_LENGTH);	for(i=0; i < MD5_DIGEST_LENGTH; i++)	{		sprintf(&(mdascii[i*2]), "%02x", md[i] );	}	/* create message */	sprintf(msg, "%s %s %s %s", addr_interface_s, mdascii, msg_type[msg_t],alert_msg);	if (debug)		printf("msg %s/n", msg);	/*send message */	if (debug)		printf("send msg %s/n", msg);	err = udp_send(msg);	if (err < 0)		printf("broadcast error, message can't be send (%s)/n",		       strerror(err));	free(msg);	return 0;}
开发者ID:Meticulus,项目名称:vendor_st-ericsson_u8500,代码行数:60,


示例26: main

int main(int argc, char** argv){    parse_args(argc, argv);    if(print_usage_flag) {        print_usage();        return 0;    }    init();    short accel[3], gyro[3], sensors[1];    long quat[4];    unsigned long timestamp;    unsigned char more[0];    struct pollfd fdset[1];    char buf[1];    // File descriptor for the GPIO interrupt pin    int gpio_fd = open(GPIO_INT_FILE, O_RDONLY | O_NONBLOCK);    // Create an event on the GPIO value file    memset((void*)fdset, 0, sizeof(fdset));    fdset[0].fd = gpio_fd;    fdset[0].events = POLLPRI;    while (1){        // Blocking poll to wait for an edge on the interrupt        if(!no_interrupt_flag) {            poll(fdset, 1, -1);        }        if (no_interrupt_flag || fdset[0].revents & POLLPRI) {            // Read the file to make it reset the interrupt            if(!no_interrupt_flag) {                read(fdset[0].fd, buf, 1);			}            int fifo_read = dmp_read_fifo(gyro, accel, quat, &timestamp, sensors, more);            if (fifo_read != 0) {                //printf("Error reading fifo./n");                continue;            }            float angles[NOSENTVALS];            rescale_l(quat, angles+9, QUAT_SCALE, 4);            // rescale the gyro and accel values received from the IMU from longs that the            // it uses for efficiency to the floats that they actually are and store these values in the angles array            rescale_s(gyro, angles+3, GYRO_SCALE, 3);            rescale_s(accel, angles+6, ACCEL_SCALE, 3);            // turn the quaternation (that is already in angles) into euler angles and store it in the angles array            euler(angles+9, angles);            if(!silent_flag && verbose_flag) {                printf("Yaw: %+5.1f/tPitch: %+5.1f/tRoll: %+5.1f/n", angles[0]*180.0/PI, angles[1]*180.0/PI, angles[2]*180.0/PI);            }            // send the values in angles over UDP as a string (in udp.c/h)            if(!no_broadcast_flag) {                udp_send(angles, 13);            }        }    }}
开发者ID:james-ward,项目名称:DropBoneImu,代码行数:59,


示例27: main

int main() {    int fd = udp_init_broadcast(8887);    char *sendtext = "UDP Test/n";    printf("Sending text:/n%s/n", sendtext);    udp_send(fd, sendtext, strlen(sendtext));    udp_close(fd);    return 0;}
开发者ID:Simpleyyt,项目名称:pidgin-libsms,代码行数:8,


示例28: provSendPacket

void provSendPacket(const void* buffer, int len){	struct pbuf* p;	p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);	pbuf_take(p, buffer, len);	udp_send(eth_udppcb, p);	pbuf_free(p);}
开发者ID:KrystianD,项目名称:kdhome,代码行数:8,


示例29: main

int main(int argc, char *argv[]){	if(argc < 2)	{		printf("Usage ./main MD1AC44200003128/n");		return EXIT_FAILURE;	}	int 	prev_value = 100;	int 	recent_value = 1;	FILE*	stream;	char	request[1024], buf[1024], json[1024];	stream = fopen("config.ini", "r");	fread(buf, sizeof(char), sizeof(buf), stream);	fclose(stream);	printf("Bulb: %s/n", argv[1]);	while(1)	{		sprintf(request, "https://io.adafruit.com/api/feeds/qstation?x-aio-key=%s", buf);		recent_value = http_request(request);		if(prev_value != 100 && recent_value != prev_value)		{			if(recent_value == 2)			{				printf("Turn bulb off./n");				sprintf(json, "{/"iswitch/":/"0/",/"r/":/"255/",/"g/":/"255/",/"b/":/"255/",/"bright/":/"20/",/"cmd/":/"light_ctrl/",/"effect/":/"9/",/"sn_list/":[{/"sn/":/"%s/"}]}", argv[1]);				udp_send(json);			}			else if(recent_value == 3)			{				printf("Turn bulb on./n");				sprintf(json, "{/"iswitch/":/"1/",/"r/":/"255/",/"g/":/"255/",/"b/":/"255/",/"bright/":/"20/",/"cmd/":/"light_ctrl/",/"effect/":/"9/",/"sn_list/":[{/"sn/":/"%s/"}]}", argv[1]);				udp_send(json);			}			else printf("ERROR: Unknown value./n");		}		prev_value = recent_value;		sleep(10);	}	return EXIT_SUCCESS;}
开发者ID:Mast3rChief,项目名称:QStation_Demo,代码行数:46,


示例30: udp_send

inlineint udp_send(udp_sock& sock, const std::vector<char>& msg){    if(msg.size() == 0)        return 0;    return udp_send(sock, &msg[0], msg.size());}
开发者ID:20k,项目名称:crappynetworking,代码行数:8,



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


C++ udp_sendto函数代码示例
C++ udp_remove函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。