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-hant/n/134545.html

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

相關推薦

發表回復

登錄後才能評論