netconn_new_with_callback没有进入接收
时间: 2023-10-10 13:12:54 浏览: 68
`netconn_new_with_callback` 是一个创建新连接的函数,它并不会自动接收数据。如果你希望接收数据,需要使用 `netconn_recv` 函数来阻塞式地接收数据。以下是一个简单的例子:
```c
void receive_callback(void *arg, struct netconn *conn, enum netconn_evt evt, uint16_t len)
{
if (evt == NETCONN_EVT_RCVMINUS) {
printf("Received data!\n");
char buf[128];
int recv_size = netconn_recv(conn, &buf, sizeof(buf));
if (recv_size > 0) {
printf("Received: %s\n", buf);
}
}
}
// ...
struct netconn *conn = netconn_new_with_callback(NETCONN_TCP, receive_callback);
```
在上面的例子中,我们传递了一个回调函数 `receive_callback` 给 `netconn_new_with_callback` 函数,这个回调函数会在连接上有数据可读时被调用。在回调函数中,我们调用了 `netconn_recv` 函数来接收数据。注意,`netconn_recv` 函数是阻塞式的,也就是说它会一直阻塞直到有数据可读或者连接被关闭。
阅读全文