UDP測下位機心跳

2021-05-01 02:14:23 字數 1592 閱讀 5567

**簡潔,只供學習研究。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define myport 4000 /* the port users will be sending to */

#define maxbuflen 100

struct list ;

struct header;

void initheader(struct header *head)

void inserlist(struct header* head,struct sockaddr_in addr)

int deletelist(struct header* head,struct list* list)

if( p == null) else

}int serchlist(struct header* head,struct sockaddr_in  addr)

p = p->next;

}if( p == null)

return 0;

return 1;

}void initflag(struct header* head)

}void searchsend(struct header* head,int sockfd)

else

p = p->next;}}

main()

my_addr.sin_family = af_inet; /* host byte order */

my_addr.sin_port = htons(myport); /* short, network byte order */

my_addr.sin_addr.s_addr = inaddr_any; /* auto-fill with my ip */

bzero(&(my_addr.sin_zero), 8); /* zero the rest of the struct */

if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1)

addr_len = sizeof(struct sockaddr);  

fcntl(sockfd,f_setfl,o_nonblock);

initheader(&head);

while(1) else

}searchsend(&head,sockfd);

initflag(&head);

sleep(4);

}close(sockfd);

} 以上為主機**。

自動獲取連線到得ip位址,並在連線成功上位機可以定時測試下位機狀況,如有僵死狀況,發出警告訊號。

該**為考慮,自動退出功能。如需新增可以在**中新增時間控制。

上位機 下位機

上位機是指 人可以直接發出操控命令的計算機,一般是pc,螢幕上顯示各種訊號變化 液壓,水位,溫度等 下位機是直接控制裝置獲取裝置狀況的的計算機,一般是plc 微控制器之類的。上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序訊號直接控制相應裝置。下位機不時讀取裝置狀態資料 一般模擬量 轉...

linux下位運算總結

所謂的位運算指的是二進位制位的運算。在系統軟體中,常要處理二進位制位的問題。例如,將乙個儲存單元中的二進位制位左移或右移以為,兩個數按位相加等等。c語言中提供了如表1所列出的位運算子。表 1運算子 含義 運算子 含義 按位與 取反 按位或 左移 按位異或 右移 說明 1 位運算中除 以外,均為二目運...

上位機與下位機

上位機一般是集中管理監控機,下位機是指現場直接控制器或控制機。上位機面向管理級使用者,下位機面向底層裝置控制。上位機 上位監視系統,一般為計算機系統 監控軟體 下位機 控制系統的現場執行系統,一般為plc等裝置。上位機是指人可以直接發出操控命令的計算機,一般是pc,螢幕上顯示各種訊號變化 液壓,水位...