c語言監聽文件,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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZSZP的頭像ZSZP
上一篇 2024-10-04 00:06
下一篇 2024-10-04 00:06

相關推薦

發表回復

登錄後才能評論