时间同步已经完成
This commit is contained in:
@@ -123,7 +123,7 @@ int net_init(const char *ip, const char *mask, const char *gateway) {
|
||||
ch395f_set_retrans_count(8); /* 重传 8 次*/
|
||||
ch395f_set_retrans_period(500); /* 每次间隔 500ms,总计 4s 重传窗口 */
|
||||
|
||||
/* 设置 TCP KeepAlive 参数(必须在 INIT_CH395 之前,单位 ms,必须为 500 的倍数,IDLE > INTVL<EFBFBD>?*/
|
||||
/* 设置 TCP KeepAlive 参数(必须在 INIT_CH395 之前,单位 ms,必须为 500 的倍数,且 IDLE > INTVL)*/
|
||||
ch395f_set_keepalive_idle(60000); /* 空闲 60 秒后开始探测*/
|
||||
ch395f_set_keepalive_intvl(5000); /* 5 秒探测一次*/
|
||||
ch395f_set_keepalive_cnt(3); /* 最多探 3 次*/
|
||||
@@ -362,12 +362,11 @@ void net_process_messages(void) {
|
||||
* 函数功能:创建 Socket,分配空闲 Socket 控制块并初始化状态
|
||||
* 入口参数:domain - 地址族,仅支持 NET_AF_INET int
|
||||
* type - SOCK_STREAM(TCP) 或 SOCK_DGRAM(UDP) int
|
||||
* protocol - 通常为 0 int
|
||||
* 返回值:Socket 描述符 (0~7),失败返回 -1 int
|
||||
* 限定条件:net_init() 已调用成功;s_net_initialized == 1
|
||||
* 函数说明:自动分配一个空闲的 Socket 控制块(in_use=0),初始化为 CREATED 状态
|
||||
*/
|
||||
int net_socket(int domain, int type, int protocol) {
|
||||
int net_socket(int domain, int type) {
|
||||
int sockfd;
|
||||
net_sock_t *p_sock;
|
||||
|
||||
@@ -411,7 +410,7 @@ int net_bind(int sockfd, const struct net_sockaddr *addr, int addrlen) {
|
||||
net_sock_t *p_sock;
|
||||
const struct net_sockaddr_in *p_addr_in;
|
||||
|
||||
/* 参数检<EFBFBD>?*/
|
||||
/* 参数检查 */
|
||||
if (sockfd < 0 || sockfd >= NET_MAX_SOCKETS) {
|
||||
s_net_errno = NET_ERR_BADF;
|
||||
return -1;
|
||||
@@ -1257,7 +1256,7 @@ int net_sendto(int sockfd, const void *buf, int len, int flags,
|
||||
int sent = 0;
|
||||
uint32_t tick_start;
|
||||
|
||||
/* 参数检<EFBFBD>?*/
|
||||
/* 参数检查 */
|
||||
if (sockfd < 0 || sockfd >= NET_MAX_SOCKETS) {
|
||||
s_net_errno = NET_ERR_BADF;
|
||||
return -1;
|
||||
@@ -1292,7 +1291,7 @@ int net_sendto(int sockfd, const void *buf, int len, int flags,
|
||||
|
||||
tick_start = HAL_GetTick();
|
||||
|
||||
/* 发送数<EFBFBD>?*/
|
||||
/* 发送数据 */
|
||||
while (sent < len) {
|
||||
int chunk = len - sent;
|
||||
if (chunk > NET_SEND_CHUNK_MAX) {
|
||||
@@ -1315,7 +1314,7 @@ int net_sendto(int sockfd, const void *buf, int len, int flags,
|
||||
sent += chunk;
|
||||
p_sock->send_bytes += (uint32_t)chunk;
|
||||
|
||||
/* 等待发送完<EFBFBD>?*/
|
||||
/* 等待发送完成 */
|
||||
tick_start = HAL_GetTick();
|
||||
while (!p_sock->send_ready) {
|
||||
net_poll();
|
||||
@@ -1346,7 +1345,7 @@ int net_recvfrom(int sockfd, void *buf, int len, int flags,
|
||||
int recv_len;
|
||||
uint32_t tick_start;
|
||||
|
||||
/* 参数检<EFBFBD>?*/
|
||||
/* 参数检查 */
|
||||
if (sockfd < 0 || sockfd >= NET_MAX_SOCKETS) {
|
||||
s_net_errno = NET_ERR_BADF;
|
||||
return -1;
|
||||
@@ -1370,7 +1369,7 @@ int net_recvfrom(int sockfd, void *buf, int len, int flags,
|
||||
|
||||
recv_len = ch395f_get_recv_len(sockfd);
|
||||
if (recv_len > 0) {
|
||||
/* UDP Server 模式:前 8 字节为固定格式(IP + 端口 + 长度<EFBFBD>?*/
|
||||
/* UDP Server 模式:前 8 字节为固定格式(IP + 端口 + 长度)*/
|
||||
if (p_sock->type == NET_SOCK_DGRAM && recv_len >= 8) {
|
||||
uint8_t header[8];
|
||||
ch395f_read_recv_buf(sockfd, header, 8);
|
||||
@@ -1381,7 +1380,7 @@ int net_recvfrom(int sockfd, void *buf, int len, int flags,
|
||||
*addrlen >= (int)sizeof(struct net_sockaddr_in)) {
|
||||
struct net_sockaddr_in *p_addr_in = (struct net_sockaddr_in *)src_addr;
|
||||
p_addr_in->sin_family = NET_AF_INET;
|
||||
/* CH395F UDP <EFBFBD>? [0-1] reserved [2-3] src_port(LE) [4-7] src_ip */
|
||||
/* CH395F UDP 头 [0-1] reserved [2-3] src_port(LE) [4-7] src_ip */
|
||||
p_addr_in->sin_port = net_htons((uint16_t)(header[2] | (header[3] << 8)));
|
||||
p_addr_in->sin_addr.s_addr = ((uint32_t)header[4]) |
|
||||
((uint32_t)header[5] << 8) |
|
||||
@@ -1400,13 +1399,13 @@ int net_recvfrom(int sockfd, void *buf, int len, int flags,
|
||||
}
|
||||
}
|
||||
|
||||
/* 非阻塞模式检<EFBFBD>?*/
|
||||
/* 非阻塞模式检查 */
|
||||
if (flags & NET_MSG_DONTWAIT) {
|
||||
s_net_errno = NET_ERR_WOULDBLOCK;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* 超时检<EFBFBD>?*/
|
||||
/* 超时检查 */
|
||||
if (NET_RECV_TIMEOUT_MS > 0 &&
|
||||
(HAL_GetTick() - tick_start) >= NET_RECV_TIMEOUT_MS) {
|
||||
s_net_errno = NET_ERR_TIMEDOUT;
|
||||
@@ -1482,7 +1481,7 @@ int net_close_sock(net_sock_t *p_sock) {
|
||||
int net_set_event_cb(int sockfd, net_event_cb_t cb, void *arg) {
|
||||
net_sock_t *p_sock;
|
||||
|
||||
/* 参数检<EFBFBD>?*/
|
||||
/* 参数检查 */
|
||||
if (sockfd < 0 || sockfd >= NET_MAX_SOCKETS) {
|
||||
s_net_errno = NET_ERR_BADF;
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user