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

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

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

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

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

示例1: ftp_bind

/*****************************************************************************************************************************函数名称:	 	fpt_bind**函数功能:	 	**入口参数:**返回参数:***************************************************************************************************************************/void ftp_bind(FTP_INFO *pftpInfo,UINT16 port){	struct tcp_pcb *pcb;	struct netconn *net_conn;	if(eRAW == pftpInfo->attri)	{		if(eCtr == pftpInfo->ctrOrMsg)		{			if(ERR_OK != tcp_bind(pftpInfo->ftpRAWControl,IP_ADDR_ANY,port))//IP_ADDR_ANY			{				LIBMCU_DEBUG(ETHERNTE_DEBUG,("/r/n Control tcp_bind fail"));			}		}		else if(eMsg == pftpInfo->ctrOrMsg)		{			if(ERR_OK != tcp_bind(pftpInfo->ftpRAWDataMsg,IP_ADDR_ANY,port))//IP_ADDR_ANY			{				LIBMCU_DEBUG(ETHERNTE_DEBUG,("/r/n DataMsg tcp_bind fail"));			}		}			}	else if(eRAW == pftpInfo->attri)	{		}}
开发者ID:liudonghua7914,项目名称:FlyMcu,代码行数:32,


示例2: TCPSocket_Init

//------------------------------------------------------------------------------------------------------------------------------------------------------bool TCPSocket_Init(void(*_funcConnect)(void), void(*_funcReciever)(const char *_buffer, uint _length)){    struct tcp_pcb *pcb = tcp_new();    if (pcb != NULL)    {        err_t err = tcp_bind(pcb, IP_ADDR_ANY, (u16_t)DEFAULT_PORT);        if (err == ERR_OK)        {            pcb = tcp_listen(pcb);            SocketFuncReciever = _funcReciever;            SocketFuncConnect = _funcConnect;            tcp_accept(pcb, CallbackOnAccept);        }        else        {            // abort? output diagnostic?        }    }    else    {        // abort? output diagonstic?    }    pcb = tcp_new();    if (pcb != NULL)    {        err_t err = tcp_bind(pcb, IP_ADDR_ANY, (u16_t)POLICY_PORT);        if (err == ERR_OK)        {            pcb = tcp_listen(pcb);            SocketFuncReciever = _funcReciever;            SocketFuncConnect = _funcConnect;            tcp_accept(pcb, CallbackOnAcceptPolicyPort);        }        else        {        }    }    else    {    }    pcbClient = 0;    return true;}
开发者ID:Sasha7b9,项目名称:Osci,代码行数:49,


示例3: opennap_start

static BOOL opennap_start(Protocol *p){	char alias[16];		if (!(OPENNAP->cfg = gift_config_new("OpenNap"))) {		OPN->err(OPN, "Can't load OpenNap configuration!");		return FALSE;	}	if (!(OPENNAP->con = tcp_bind(OPN_DATAPORT, FALSE)))		return FALSE;		input_add(OPENNAP->con->fd, OPENNAP->con, INPUT_READ,	          (InputCallback) opn_upload_connect, TIMEOUT_DEF);	if (OPN_RANDOM_USERNAME) {		set_username(alias);		config_set_str(OPENNAP->cfg, "main/alias", alias);	}	OPENNAP->nodelist = opn_nodelist_new();	opn_nodelist_load(OPENNAP->nodelist, OPN_USE_NAPIGATOR);	return TRUE;}
开发者ID:BackupTheBerlios,项目名称:gift-opennap,代码行数:25,


示例4: udp_client_callback

/**  * @brief  This function is called when a datagram is received   * @param arg user supplied argument (udp_pcb.recv_arg)   * @param upcb the udp_pcb which received data   * @param p the packet buffer that was received   * @param addr the remote IP address from which the packet was received   * @param port the remote port from which the packet was received  * @retval None  */void udp_client_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port){    struct tcp_pcb *pcb;    __IO uint8_t iptab[4];    uint8_t iptxt[20];    /* Read the Server's IP address */    iptab[0] = (uint8_t)((uint32_t)(addr->addr) >> 24);    iptab[1] = (uint8_t)((uint32_t)(addr->addr) >> 16);    iptab[2] = (uint8_t)((uint32_t)(addr->addr) >> 8);    iptab[3] = (uint8_t)((uint32_t)(addr->addr));    sprintf((char*)iptxt, "is: %d.%d.%d.%d     ", iptab[3], iptab[2], iptab[1], iptab[0]);    LCD_DisplayStringLine(Line3, "The server's IP add.");    LCD_DisplayStringLine(Line4, iptxt);    /* Create a new TCP control block  */    pcb = tcp_new();    /* Assign to the new pcb a local IP address and a port number */    tcp_bind(pcb, IP_ADDR_ANY, TCP_PORT);    /* Connect to the server: send the SYN */    tcp_connect(pcb, addr, TCP_PORT, tcp_client_connected);//    tcp_accept(pcb, APP_accept);  ////   tcp_sent(pcb, App_sent);    /* Free the p buffer */    pbuf_free(p);}
开发者ID:fanqh,项目名称:ETH_Mange,代码行数:41,


示例5: server_init

/**  * @brief  Initialize the server application.  * @param  None  * @retval None  */void server_init(void){  struct tcp_pcb *tpcb;    	struct udp_pcb *upcb;  	  	/* Create a new TCP control block  */	tpcb = tcp_new();		/* Assign to the new pcb a local IP address and a port number */	/* Using IP_ADDR_ANY allow the pcb to be used by any local interface */	tcp_bind(tpcb, IP_ADDR_ANY, TCP_SERVER_PORT);		/* Set the connection to the LISTEN state */	tpcb = tcp_listen(tpcb);	/* Specify the function to be called when a connection is established */		tcp_accept(tpcb, tcp_server_accept);		  /* Create a new UDP control block  */  upcb = udp_new();    /* Bind the upcb to the UDP_PORT port */  /* Using IP_ADDR_ANY allow the upcb to be used by any local interface */  udp_bind(upcb, IP_ADDR_ANY, UDP_SERVER_PORT);    /* Set a receive callback for the upcb */  udp_recv(upcb, udp_server_callback, NULL);  }
开发者ID:liudezhi,项目名称:glow-tube-clock,代码行数:33,


示例6: do_bind

/** * Bind a pcb contained in a netconn * Called from netconn_bind. * * @param msg the api_msg_msg pointing to the connection and containing *            the IP address and port to bind to */voiddo_bind(struct api_msg_msg *msg){    if (ERR_IS_FATAL(msg->conn->last_err)) {        msg->err = msg->conn->last_err;    } else {        msg->err = ERR_VAL;        if (msg->conn->pcb.tcp != NULL) {            switch (NETCONNTYPE_GROUP(msg->conn->type)) {#if LWIP_RAW            case NETCONN_RAW:                msg->err = raw_bind(msg->conn->pcb.raw, msg->msg.bc.ipaddr);                break;#endif /* LWIP_RAW */#if LWIP_UDP            case NETCONN_UDP:                msg->err = udp_bind(msg->conn->pcb.udp, msg->msg.bc.ipaddr, msg->msg.bc.port);                break;#endif /* LWIP_UDP */#if LWIP_TCP            case NETCONN_TCP:                msg->err = tcp_bind(msg->conn->pcb.tcp, msg->msg.bc.ipaddr, msg->msg.bc.port);                break;#endif /* LWIP_TCP */            default:                break;            }        }    }    TCPIP_APIMSG_ACK(msg);}
开发者ID:comrid1987,项目名称:jb3500,代码行数:38,


示例7: tcp_listen

int tcp_listen(const char *ip, unsigned short port){	int fd;	if ((fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {		perror("socket");		goto out;	}	if (tcp_bind(fd, ip, port) != 0) {		goto err;	}	if (set_nonblock(fd) < 0) {		perror("set_nonblock");		goto err;	}	if (listen(fd, 8192) == -1) {		perror("listen");		goto err;	}	return fd;err:	close(fd);out:	return -1;}
开发者ID:yangxks,项目名称:Model,代码行数:29,


示例8: httpd_init

/** * The initialization function. */err_thttpd_init(void){	struct tcp_pcb *pcb;	err_t  err;	/* Create a new TCP PCB. */	pcb = tcp_new();	if (pcb == NULL) {		printf("F: Fail to create PCB/n/r");		return ERR_BUF;	}	/* Bind the PCB to TCP port 80. */	err = tcp_bind(pcb, NULL, 80);	if (err != ERR_OK) {		printf("E: tcp_bind %x/n/r", err);		return err;	}	/* Change TCP state to LISTEN. */	pcb = tcp_listen(pcb);	if (pcb == NULL) {		printf("E: tcp_listen/n/r");		return ERR_BUF;	}	/* Set up httpd_accet() function to be called	when a new connection arrives. */	tcp_accept(pcb, httpd_accept);	return ERR_OK;}
开发者ID:gstroe,项目名称:Arm,代码行数:38,


示例9: open_dataconnection

static int open_dataconnection(struct tcp_pcb *pcb, struct ftpd_msgstate *fsm){	if (fsm->passive)		return 0;	/* Allocate memory for the structure that holds the state of the	   connection. */	fsm->datafs = malloc(sizeof(struct ftpd_datastate));	if (fsm->datafs == NULL) {		send_msg(pcb, fsm, msg451);		return 1;	}	memset(fsm->datafs, 0, sizeof(struct ftpd_datastate));	fsm->datafs->msgfs = fsm;	fsm->datafs->msgpcb = pcb;	sfifo_init(&fsm->datafs->fifo, 2000);	fsm->datapcb = tcp_new();	tcp_bind(fsm->datapcb, &pcb->local_ip, 20);	/* Tell TCP that this is the structure we wish to be passed for our	   callbacks. */	tcp_arg(fsm->datapcb, fsm->datafs);	tcp_connect(fsm->datapcb, &fsm->dataip, fsm->dataport, ftpd_dataconnected);	return 0;}
开发者ID:zeldin,项目名称:dc-ftpd,代码行数:27,


示例10: lwip_socket_bind

STATIC mp_obj_t lwip_socket_bind(mp_obj_t self_in, mp_obj_t addr_in) {    lwip_socket_obj_t *socket = self_in;    uint8_t ip[NETUTILS_IPV4ADDR_BUFSIZE];    mp_uint_t port = netutils_parse_inet_addr(addr_in, ip, NETUTILS_BIG);    ip_addr_t bind_addr;    IP4_ADDR(&bind_addr, ip[0], ip[1], ip[2], ip[3]);    err_t err = ERR_ARG;    switch (socket->type) {        case MOD_NETWORK_SOCK_STREAM: {            err = tcp_bind((struct tcp_pcb*)socket->pcb, &bind_addr, port);            break;        }        case MOD_NETWORK_SOCK_DGRAM: {            err = udp_bind((struct udp_pcb*)socket->pcb, &bind_addr, port);            break;        }    }    if (err != ERR_OK) {        nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(error_lookup_table[-err])));    }    return mp_const_none;}
开发者ID:opensourcekids,项目名称:micropython,代码行数:27,


示例11: telnet_svc_init

struct telnet_svc * telnet_svc_init(int port){  	struct telnet_svc * tn = &telnet_svc;	int th;	if (port == 0)		port = 23; /* use default TELNET srvice port */	tn->svc = tcp_alloc();	tn->tp = NULL;	tcp_bind(tn->svc, INADDR_ANY, htons(port));	if (tcp_listen(tn->svc, 1) != 0) {		INF("Can't register the TCP listner!");		return NULL;	}	tn->rx.nonempty_flag = thinkos_flag_alloc();	tn->rx.nonfull_flag = thinkos_flag_alloc();	tn->rx.head = 0;	tn->rx.tail = 0;	th = thinkos_thread_create_inf((void *)telnet_input_task, (void *)tn, 								   &telnet_srv_inf);	(void)th;									INF("TELNET TCP input thread=%d", th);	return tn;}
开发者ID:k0059,项目名称:yard-ice,代码行数:30,


示例12: lwip_socket_bind

STATIC mp_obj_t lwip_socket_bind(mp_obj_t self_in, mp_obj_t addr_in) {    lwip_socket_obj_t *socket = self_in;    uint8_t ip[NETUTILS_IPV4ADDR_BUFSIZE];    mp_uint_t port = netutils_parse_inet_addr(addr_in, ip, NETUTILS_BIG);    ip_addr_t bind_addr;    IP4_ADDR(&bind_addr, ip[0], ip[1], ip[2], ip[3]);    err_t err = ERR_ARG;    switch (socket->type) {        case MOD_NETWORK_SOCK_STREAM: {            err = tcp_bind(socket->pcb.tcp, &bind_addr, port);            break;        }        case MOD_NETWORK_SOCK_DGRAM: {            err = udp_bind(socket->pcb.udp, &bind_addr, port);            break;        }    }    if (err != ERR_OK) {        mp_raise_OSError(error_lookup_table[-err]);    }    return mp_const_none;}
开发者ID:learnforpractice,项目名称:micropython,代码行数:27,


示例13: lwHTTPDispatcher_Init

void lwHTTPDispatcher_Init(		struct lwHTTPDispatcher* dispatcher,		int port,		struct lwhttpSite* site){	err_t err;	dispatcher->caps.clientValidator = 0;	memset(		&dispatcher->caps.wsProtocolsList,		0,		sizeof(dispatcher->caps.wsProtocolsList)	);	memset(		&dispatcher->conns,		0,		sizeof(dispatcher->conns	)	);	dispatcher->pcb = tcp_new();	dispatcher->port = port;	dispatcher->nextConnectionToTry = 0;	dispatcher->site = site;	/* bind to specified @port */	err = tcp_bind(dispatcher->pcb, IP_ADDR_ANY, port);	if (err != ERR_OK) {		LWHTTPDebug("Unable to bind to port %d: err = %d/n/r", port, err);	}	tcp_arg(dispatcher->pcb, dispatcher);	dispatcher->pcb = tcp_listen(dispatcher->pcb);	tcp_accept(dispatcher->pcb, lwHTTPDispatcher_AcceptCallback);}
开发者ID:RaulHuertas,项目名称:lwhttp,代码行数:31,


示例14: start_connection

int start_connection(void){	struct tcp_pcb *_pcb;	err_t err;	/* create new TCP PCB structure */	_pcb = tcp_new();	if (!_pcb) {		xil_printf("Error creating PCB. Out of Memory/n/r");		return -1;	}	/* bind to specified @port */	err = tcp_bind(_pcb, IP_ADDR_ANY, (unsigned short)PORT);	if (err != ERR_OK) {		xil_printf("Unable to bind to port %d: err = %d/n/r", PORT, err);		return -2;	}	/* we do not need any arguments to callback functions */	tcp_arg(_pcb, NULL);	/* listen for connections */	_pcb = tcp_listen(_pcb);	if (!_pcb) {		xil_printf("Out of memory while tcp_listen/n/r");		return -3;	}	/* specify callback to use for incoming connections */	tcp_accept(_pcb, accept_callback);	return 0;}
开发者ID:davestevens,项目名称:Microblaze-FileIO,代码行数:34,


示例15: socks_tcp_bind

intsocks_tcp_bind(struct socks_data *data){	struct tcp_pcb *pcb;	err_t ret;	pcb = tcp_new();	if (!pcb)		return -1;	pcb->flags |= TF_NODELAY;	ip_set_option(pcb, SOF_REUSEADDR);	ret = tcp_bind(pcb, IP_ADDR_ANY, data->port);	if (ret < 0) {		tcp_abort(pcb);		return -1;	}	data->pcb = tcp_listen(pcb);	if (!data->pcb) {		tcp_abort(pcb);		return -1;	}	tcp_arg(data->pcb, data);	tcp_accept(data->pcb, socks_tcp_accept);	return 0;}
开发者ID:stxh,项目名称:tunsocks,代码行数:30,


示例16: tcp_new

void AsyncServer::begin(){  if(_pcb)    return;  int8_t err;  tcp_pcb* pcb = tcp_new();  if (!pcb)    return;  ip_addr_t local_addr;  local_addr.addr = (uint32_t) _addr;  err = tcp_bind(pcb, &local_addr, _port);  if (err != ERR_OK) {    tcp_close(pcb);    return;  }  tcp_pcb* listen_pcb = tcp_listen(pcb);  if (!listen_pcb) {    tcp_close(pcb);    return;  }  _pcb = listen_pcb;  tcp_arg(_pcb, (void*) this);  tcp_accept(_pcb, _s_accept);}
开发者ID:2fatdotco,项目名称:sxsw2016-arduinoLampLibraries,代码行数:27,


示例17: tcp_server_bm_init

int tcp_server_bm_init(uint16_t bind_port){    err_t r;    //don't use htons() (don't know why...)    struct tcp_pcb *pcb = tcp_new();    if (pcb == NULL) {        return ERR_MEM;    }    r = tcp_bind(pcb, IP_ADDR_ANY, bind_port);    if(r != ERR_OK) {        return(r);    }    struct tcp_pcb *pcb2 = tcp_listen(pcb);    assert(pcb2 != NULL);    tcp_accept(pcb2, tcp_server_bm_accept);    printf("TCP tcp_server_bm_init(): bound./n");    printf("TCP installed receive callback./n");    printf("TCP benchmark server started/n");    return (0);}
开发者ID:Karamax,项目名称:arrakis,代码行数:25,


示例18: telnet_init

void telnet_init(void){	telnet_pcb = tcp_new();	tcp_bind(telnet_pcb, IP_ADDR_ANY, 23);	telnet_pcb = tcp_listen(telnet_pcb);	tcp_accept(telnet_pcb, telnet_accept);}
开发者ID:hkwi,项目名称:ZodiacFX,代码行数:7,


示例19: tcp_echoserver_init

/**  * @brief  Initializes the tcp echo server  * @param  None  * @retval None  */void tcp_echoserver_init(void){  /* create new tcp pcb */  tcp_echoserver_pcb = tcp_new();  if (tcp_echoserver_pcb != NULL)  {    err_t err;        /* bind echo_pcb to port 7 (ECHO protocol) */    err = tcp_bind(tcp_echoserver_pcb, IP_ADDR_ANY, 7);        if (err == ERR_OK)    {      /* start tcp listening for echo_pcb */      tcp_echoserver_pcb = tcp_listen(tcp_echoserver_pcb);            /* initialize LwIP tcp_accept callback function */      tcp_accept(tcp_echoserver_pcb, tcp_echoserver_accept);    }    else     {      /* deallocate the pcb */      memp_free(MEMP_TCP_PCB, tcp_echoserver_pcb);      printf("Can not bind pcb/n");    }  }  else  {    printf("Can not create new pcb/n");  }}
开发者ID:blueskycoco,项目名称:stsw-stm32070,代码行数:37,


示例20: lwip_bind

int lwip_bind(int s, struct sockaddr *name, socklen_t namelen) {	sockfd_t	* fd;	struct ip_addr	ip;	int		port, rv = 0;	s = sock_for_fd(s);	if (s < 0) {		errno = EBADF;		return -1;	}	fd = fds + s;	// Make sure it's an internet address we understand.	if (namelen != sizeof(struct sockaddr_in)) {		errno = ENAMETOOLONG;		return -1;	}	// Get access	mutex_lock(fd->mutex);	// Copy it over	memcpy(&fd->name, name, namelen);	// Convert this to an lwIP-happy format	ip.addr = ((struct sockaddr_in *)name)->sin_addr.s_addr;	port = ((struct sockaddr_in *)name)->sin_port;	// Are we TCP or UDP?	switch (fd->type) {	case SOCK_STREAM:		fd->tcppcb = tcp_new();		tcp_arg(fd->tcppcb, (void *)s);		tcp_recv(fd->tcppcb, recv_tcp);		tcp_sent(fd->tcppcb, sent_tcp);		tcp_poll(fd->tcppcb, poll_tcp, 4);	// 4 == 4 TCP timer intervals		tcp_err(fd->tcppcb, err_tcp);		if (tcp_bind(fd->tcppcb, &ip, ntohs(port)) != ERR_OK) {			if (tcp_close(fd->tcppcb) != ERR_OK)				tcp_abort(fd->tcppcb);			fd->tcppcb = NULL;			errno = EINVAL;			rv = -1; goto out;		}		break;	case SOCK_DGRAM:		fd->udppcb = udp_new();		udp_recv(fd->udppcb, recv_udp, (void *)s);		udp_bind(fd->udppcb, &ip, ntohs(port));		break;	default:		assert( 0 );		errno = EINVAL;		rv = -1; goto out;	}out:	mutex_unlock(fd->mutex);	return rv;}
开发者ID:foreverlikeyou9999,项目名称:kos-ports,代码行数:60,


示例21: LibTCPBindCallback

staticvoidLibTCPBindCallback(void *arg){    struct lwip_callback_msg *msg = arg;    PTCP_PCB pcb = msg->Input.Bind.Connection->SocketContext;    ASSERT(msg);    if (!msg->Input.Bind.Connection->SocketContext)    {        msg->Output.Bind.Error = ERR_CLSD;        goto done;    }    /* We're guaranteed that the local address is valid to bind at this point */    pcb->so_options |= SOF_REUSEADDR;    msg->Output.Bind.Error = tcp_bind(pcb,                                      msg->Input.Bind.IpAddress,                                      ntohs(msg->Input.Bind.Port));done:    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);}
开发者ID:RareHare,项目名称:reactos,代码行数:25,


示例22: tcp_new

void WiFiServer::begin(){    err_t err;    tcp_pcb* pcb = tcp_new();    if (!pcb)        return;    err = tcp_bind(pcb, INADDR_ANY, _port);    if (err != ERR_OK)    {        tcp_close(pcb);        return;    }    tcp_pcb* listen_pcb = tcp_listen(pcb);    if (!listen_pcb)    {        tcp_close(pcb);        return;    }    _pcb = listen_pcb;    tcp_accept(listen_pcb, &WiFiServer::_s_accept);    tcp_arg(listen_pcb, (void*) this);}
开发者ID:AbanoubAnis,项目名称:esp8266-Arduino,代码行数:26,


示例23: syscall_handler

int syscall_handler(int num, struct syscall_arguments *args){    interrupt_unmask();        switch (num)    {        case ADDPROCESS:            interrupt_mask();                process_add((void (*)())args->arg1);            interrupt_unmask();        break;        case YIELD:            interrupt_sleepinsyscall();        break;                case UDPSEND:            return udp_output(args->arg1, (struct sockaddr*)args->arg2,                 (char *)args->arg3, args->arg4);        break;        case UDPRECV:            return udp_recvfrom(args->arg1, (struct sockaddr*)args->arg2,                 (char *)args->arg3, args->arg4);        break;        case UDPSOCKET:             return udp_socket();        break;        case UDPBIND:            return udp_bind(args->arg1, (struct sockaddr*)args->arg2);        break;        case UDPCLOSE:            return udp_close(args->arg1);        break;                case TCPCONNECT:            return tcp_connect(args->arg1, (struct sockaddr*)args->arg2);        break;                case TCPSEND:            return tcp_send(args->arg1, (char *)args->arg2, args->arg3);        break;        case TCPRECV:            return tcp_recv(args->arg1, (char *)args->arg2, args->arg3);        break;        case TCPSOCKET:             return tcp_socket();        break;        case TCPBIND:            return tcp_bind(args->arg1, (struct sockaddr*)args->arg2);        break;        case TCPCLOSE:            return tcp_close(args->arg1);        break;        case TCPLISTEN:            return tcp_listen(args->arg1);        break;    }        return 0;}
开发者ID:rasco,项目名称:armnet,代码行数:59,


示例24: START_TEST

END_TEST/** Call tcp_new() and tcp_abort() and test memp stats */START_TEST(test_tcp_listen_passive_open){  struct tcp_pcb *pcb, *pcbl;  struct tcp_pcb_listen *lpcb;  struct netif netif;  struct test_tcp_txcounters txcounters;  struct test_tcp_counters counters;  struct pbuf *p;  ip_addr_t src_addr;  err_t err;  LWIP_UNUSED_ARG(_i);  fail_unless(MEMP_STATS_GET(used, MEMP_TCP_PCB) == 0);  test_tcp_init_netif(&netif, &txcounters, &test_local_ip, &test_netmask);  /* initialize counter struct */  memset(&counters, 0, sizeof(counters));  pcb = tcp_new();  EXPECT_RET(pcb != NULL);  err = tcp_bind(pcb, &netif.ip_addr, 1234);  EXPECT(err == ERR_OK);  pcbl = tcp_listen(pcb);  EXPECT_RET(pcbl != NULL);  EXPECT_RET(pcbl != pcb);  lpcb = (struct tcp_pcb_listen *)pcbl;  ip_addr_set_ip4_u32_val(src_addr, lwip_htonl(lwip_ntohl(ip_addr_get_ip4_u32(&lpcb->local_ip)) + 1));  /* check correct syn packet */  p = tcp_create_segment(&src_addr, &lpcb->local_ip, 12345,    lpcb->local_port, NULL, 0, 12345, 54321, TCP_SYN);  EXPECT(p != NULL);  if (p != NULL) {    /* pass the segment to tcp_input */    test_tcp_input(p, &netif);    /* check if counters are as expected */    EXPECT(txcounters.num_tx_calls == 1);  }  /* check syn packet with short length */  p = tcp_create_segment(&src_addr, &lpcb->local_ip, 12345,    lpcb->local_port, NULL, 0, 12345, 54321, TCP_SYN);  EXPECT(p != NULL);  EXPECT(p->next == NULL);  if ((p != NULL) && (p->next == NULL)) {    p->len -= 2;    p->tot_len -= 2;    /* pass the segment to tcp_input */    test_tcp_input(p, &netif);    /* check if counters are as expected */    EXPECT(txcounters.num_tx_calls == 1);  }  tcp_close(pcbl);}
开发者ID:tansinan,项目名称:lwIP,代码行数:59,


示例25: atcp_start

/** * Start TCP transfer. */static int atcp_start(struct ttcp* ttcp) {	err_t err = ERR_OK;	ttcp->tpcb = tcp_new();	if (ttcp->tpcb == NULL) {		WARN("TTCP [%p]: could not allocate pcb/n", ttcp);		return -1;	}	ttcp->payload = malloc(ttcp->buflen);	if (ttcp->payload == NULL) {		WARN("TTCP [%p]: could not allocate payload/n", ttcp);		return -1;	}	tcp_arg(ttcp->tpcb, ttcp);	atcp_init_pend_flags();	if (ttcp->mode == TTCP_MODE_TRANSMIT) {		tcp_err(ttcp->tpcb, atcp_conn_cli_err_cb);		tcp_recv(ttcp->tpcb, atcp_recv_cb);		tcp_sent(ttcp->tpcb, tcp_data_sent);		tcp_poll(ttcp->tpcb, atcp_poll_conn, 4);		_connected = false;		INFO_TCP("[tpcb]-%p payload:%p/n", ttcp->tpcb, ttcp->payload);		DUMP_TCP_STATE(ttcp);		if (tcp_connect(ttcp->tpcb, &ttcp->addr, ttcp->port, tcp_connect_cb)				!= ERR_OK) {			WARN("TTCP [%p]: tcp connect failed/n", ttcp);			return -1;		}	} else {		INFO_TCP("BEFORE BIND ttcp:%p lpcb:%p pcb:%p/n", ttcp, ttcp->lpcb, ttcp->tpcb);		INFO_TCP("[tpcb]-local:%d remote:%d state:%d/n", ttcp->tpcb->local_port,				ttcp->tpcb->remote_port, ttcp->tpcb->state);		err = tcp_bind(ttcp->tpcb, IP_ADDR_ANY, ttcp->port);		if (err != ERR_OK){			WARN("TTCP [%p]: bind failed err=%d Port already used/n", ttcp, err);			return -1;		}		ttcp->lpcb = tcp_listen(ttcp->tpcb);		if (ttcp->lpcb == NULL) {			WARN("TTCP [%p]: listen failed/n", ttcp);			return -1;		}		if (ttcp->lpcb == ttcp->tpcb ) {			WARN("TTCP [%p]: listen failed tpcb [%p] in listen mode/n", ttcp, ttcp->tpcb);			return -1;		}		DUMP_TCP_STATE(ttcp);		tcp_accept(ttcp->lpcb, atcp_accept_cb);	}	return 0;}
开发者ID:4bcat,项目名称:Arduino,代码行数:62,


示例26: my_tcp_server_init

void my_tcp_server_init(void){	struct tcp_pcb *pcb ;	pcb = tcp_new();	tcp_bind(pcb,IP_ADDR_ANY,2000);	pcb = tcp_listen(pcb);	tcp_accept(pcb,my_accept);}
开发者ID:Shamrock3,项目名称:ucosIII_vs2010,代码行数:8,


示例27: ps_init

void ps_init(void) {	struct tcp_pcb *pcb;	pcb = tcp_new();	tcp_bind(pcb, IP_ADDR_ANY, 7765);	pcb = tcp_listen(pcb);	tcp_accept(pcb, ps_accept_FPV_tcp_accept);}
开发者ID:laserpic,项目名称:j4cDAC,代码行数:8,


示例28: tcp_new

void Network::OpenDataPort(uint16_t port){	closingDataPort = false;	tcp_pcb* pcb = tcp_new();	tcp_bind(pcb, IP_ADDR_ANY, port);	ftp_pasv_pcb = tcp_listen(pcb);	tcp_accept(ftp_pasv_pcb, conn_accept);}
开发者ID:AltairResearch,项目名称:RepRapFirmware,代码行数:8,


示例29: sink_init

void sink_init(void) {	struct tcp_pcb *pcb;	pcb = tcp_new();	tcp_bind(pcb, IP_ADDR_ANY, 9);	pcb = tcp_listen(pcb);	tcp_accept(pcb, sink_accept);}
开发者ID:DanMills,项目名称:j4cDAC,代码行数:8,



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


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