81 lines
2.0 KiB
C
81 lines
2.0 KiB
C
/*
|
|
*
|
|
*/
|
|
#ifndef IPSCAN_H
|
|
#define IPSCAN_H
|
|
|
|
#define _XOPEN_SOURCE 600 //必须设置这个否则管道方法无法使用
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <sys/types.h>
|
|
#include <sys/select.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
|
|
#include "typeorigin.h"
|
|
|
|
#define DEVTYPE "jda901"
|
|
|
|
#ifdef AZL5083
|
|
#define DEVNAME "AZL5083"
|
|
#define ETHNAME_INSIDE "eth0"
|
|
#define ETHNAME_OUTSIDE "eth1"
|
|
#elif defined SZR303
|
|
// AZL 为识别头,必须使用 AZL 开头
|
|
#define DEVNAME "AZLR303"
|
|
#define ETHNAME_INSIDE "ens0"
|
|
#define ETHNAME_OUTSIDE "ens1"
|
|
#elif defined MW335
|
|
#define DEVNAME "MW335"
|
|
#else
|
|
#define DEVNAME "UNKNOWN"
|
|
#define ETHNAME_INSIDE "ens33"
|
|
#define ETHNAME_OUTSIDE "ens33"
|
|
#endif
|
|
|
|
#define PART_TYPE_SIZE 8
|
|
#define PART_NAME_SIZE 8
|
|
#define PART_IP_SIZE 16
|
|
#define PART_MAC_SIZE 20
|
|
|
|
#define RECV_BUF_SIZE 11 // 接收缓冲区大小,对侧协议决定
|
|
#define SEND_BUF_SIZE 128 // 发送缓冲区大小,对侧协议决定
|
|
|
|
typedef struct _server_udp {
|
|
ST_INT port; // 本地端口
|
|
ST_CHAR ip[32]; // 本地ip地址
|
|
ST_INT sock; // 本地 socket
|
|
struct SOCKADDR addr; // 服务器连接属性
|
|
} server_udp;
|
|
|
|
ST_RET InitSystem();
|
|
|
|
ST_RET InitAndStartUdpServer(server_udp *server, ST_INT port);
|
|
|
|
ST_RET SeletsUDPData(server_udp *server); //select 超时阻塞模式
|
|
ST_RET RecvUdpData(server_udp *server); // 普通阻塞模式
|
|
|
|
ST_RET SendUdpData(server_udp *server , struct SOCKADDR *client_addr, ST_CHAR *data, ST_INT len);
|
|
|
|
// 解析 客户端的buff
|
|
ST_RET ParseClientBuff(server_udp *server, struct SOCKADDR *client_addr, ST_CHAR *buff);
|
|
|
|
ST_RET CloseUdpServer(server_udp *server);
|
|
|
|
// 获取设备信息
|
|
ST_RET GetDevInfo(ST_CHAR *buff, ST_INT buff_len);
|
|
ST_RET GetIPAddr(ST_CHAR *buff, const ST_CHAR *ethname);
|
|
ST_RET GetMacAddr(ST_CHAR *buff, const ST_CHAR *ethname);
|
|
// 设置网关
|
|
ST_RET SetGateway(ST_CHAR *ethname);
|
|
|
|
ST_RET EXEC_CMD(const ST_CHAR *cmd, ST_CHAR *result, ST_INT ret_len);
|
|
|
|
|
|
ST_VOID PrintBuffer(ST_UCHAR *buff, ST_INT len);
|
|
|
|
#endif |