**簡潔,只供學習研究。
#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,螢幕上顯示各種訊號變化 液壓,水位...