本文目錄一覽:
- 1、linux下怎樣用c語言做實時監控目錄中文件數量變化的程序
- 2、C語言控制台程序實時監聽鍵盤按鍵事件
- 3、如何用C語言監視一文件,(可以隔一定時間檢測該文件),當文件相比較上一時間有改動時,讀出改動處
- 4、C語言 監聽的問題
linux下怎樣用c語言做實時監控目錄中文件數量變化的程序
有一個頭文件叫inotify.h ,這是linux 內核中的一個特性,可以用來監控目錄
C語言控制台程序實時監聽鍵盤按鍵事件
輸入焦點不在控制台窗口上, 鍵盤消息不會被控制台窗口接收, 這種情況只有用全局鍵盤鉤子或低級鍵盤鉤子, 全局鉤子要寫在動態鏈接庫中(DLL文件), 低級鍵盤鉤子可寫在本線程中.
如何用C語言監視一文件,(可以隔一定時間檢測該文件),當文件相比較上一時間有改動時,讀出改動處
、「網路監視器」的基本使用
欲打開「網路監視器」,只需依次選擇「開始→程序→附件→系統工具→網路監視器」即可進入其主窗口。
對於「網路監視器」中的功能,既可以選擇菜單中的相應項目,也可以通過直接單擊工具欄上的相應按鈕來實現。在其主窗口工具欄上的按鈕,從左到右作用依次為:
1.選擇伺服器:通過它可對其他計算機的「網路監視器」進行遠程管理。具體的使用方法請參見後文相關內容。
2.斷開用戶連接:通過它可強行中斷列表中指定用戶對本機的連接。
3.關閉文件:通過它可強行關閉列表中指定用戶所打開的指定共享文件。
4.添加共享:通過它可根據提示直接添加本機的共享資源,並為它設置相應許可權。
5.停止共享:通過它可停止列表中指定資源的共享。
6.顯示用戶:這相當於選「查看」菜單中的「按連接」項,它是「網路監視器」主窗口的默認狀態,也是最常用的窗口。此處可以查看到已連接到本機的客戶機的用戶名、計算機名、打開了些什麼共享資源、打開些什麼文件以及連接的時間和空閑的時間等資料。當客戶機斷開連接之後它就會自動從此列表中消失。
7.顯示共享的文件夾:這相當於選「查看」菜單中的「按共享的文件夾」項。它可以查看本機已共享的資源及其共享名和許可權;可添加共享,停止共享,修改共享等。
8、顯示文件:這相關於選「查看」菜單中的「按打開的文件」項。它可以查看已打開的本伺服器文件;可關閉文件等。
三、「網路監視器」的遠程監視
本文上面部分已經講過「網路監視器」在本地計算機上的基本使用方法,但實際上在一定條件滿足的情況下,它也可以對區域網內的其他計算機進行完全相同的遠程管理。請進行如下的操作:
1.啟用遠程管理
在遠程計算機上,先進入其「控制面板→密碼→遠程管理」窗口,再勾選中「啟用此伺服器的遠程管理」,接著在相應位置輸入密碼後按「確定」按鈕保存退出。
2.使用遠程管理
在本地計算機上,先進入「網路監視器」的主窗口,再選「管理員」菜單中的「選擇伺服器」項,在「請輸入要進行管理的伺服器名」的提示窗口中的「名稱」處輸入遠程計算機的名字(比如為zhuyan),然後按「確定」按鈕繼續;系統接著會提示「必須提供密碼才能連接」,則請在「密碼」後輸入「啟用遠程管理」一步中所設的密碼值,最後按「確定」按鈕即可得到新的「網路監視器」的窗口,裡面當然是遠程計算機的共享內容了,你所要做的,就是進行正常操作就可以啦!
注意:
1.如果在「使用遠程管理」操作中,當進行到輸入密碼一步勾選中了「請將密碼保存到密碼列表」項,則當你以後再連接到遠程計算機時就不用輸入密碼了。
2.如果要想修改共享文件夾名或其許可權設置,則需要在「顯示共享的文件夾」窗口中,先在列表中選中該用戶,然後按鍵盤上的ALT+ENTER鍵(或者選「管理員」菜單中的「共享文件夾的屬性」項),再根據提示進行操作即可。
C語言 監聽的問題
#include iostream
#include stdlib.h
#include winsock2.h
#pragma comment(lib, “ws2_32.lib”)
using namespace std;
//頭文件包含
int main()
{ int recvbytes;
char temp[100];
char a[100]; //一些變數的聲明
WORD wVersionRequested;
WSADATA wsaData;
SOCKET sock_id, client_id; //定義兩個套接字
struct sockaddr_in serv_addr, remote_addr; //定義兩個結構
wVersionRequested = MAKEWORD(2, 0); //這個是固定用法 版本
if (0 != WSAStartup(wVersionRequested, wsaData)) //此處初始化socke庫
{
cout “載入Winsock庫出錯!” endl;
exit(1);
}
if (-1 == (sock_id = socket(AF_INET, SOCK_STREAM, 0))) //建立一個類型為TCP的套接字
{
cout “創建套接字出錯!” endl;
exit(1);
}
//填充結構體內容
serv_addr.sin_family = AF_INET; //固定
serv_addr.sin_port = htons(800); //埠
serv_addr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”); //ip
memset((serv_addr.sin_zero), 0, sizeof(serv_addr.sin_zero));//其他填充為零
//綁定到套接字描述符
if (SOCKET_ERROR == bind(sock_id, (struct sockaddr *)serv_addr, sizeof(struct sockaddr)))
{
cout “1出錯!” endl;
exit(1);
}
//開始監聽
if (SOCKET_ERROR == listen(sock_id, 5))
{
cout “2出錯!” endl;
exit(1);
}
//如果來了一個連接請求 處理輸入後發送給對方 輸入的東東
int sin_size = sizeof(struct sockaddr_in);
if (SOCKET_ERROR == (client_id = accept(sock_id, (struct sockaddr *)remote_addr, sin_size)))
{
cout “3出錯!” endl;
exit(1);
}
cout”連接到一個客戶端!!!請發送消息給他!!!”endl;
cout”請輸入要發送的消息!!!”endl;
while(1)
{ cina;
send(client_id, a, strlen(a), 0); //把輸入的東東發送出去
if (ERROR_SUCCESS == (recvbytes = recv(client_id, temp, 100, 0))) //接收數據到temp緩衝區
{
cout “接受數據出錯!” endl;
exit(1);
}
temp[recvbytes] = ‘\0’;
cout temp endl;
if(temp[0]!=’8′)
continue;
else
break;
}
closesocket(client_id); //關閉套接字
closesocket(sock_id); //關閉套接字
WSACleanup(); //清理套接字型檔等收尾工作
system(“pause”); //暫停
return 0;
}
原創文章,作者:ZSZP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134545.html