简单局域网自动更新程序

应为工作需要花了两个小时写了个局域网更新程序 ,简是简单了点 ,但是感觉还挺好用 ,和大家分享下 !

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
using System.Threading;
using System.Windows.Forms;

namespace AutoUpdateSystem
{
    public class LogicClass
    {
        public LogicClass()
        {
 
        }

        string AutoUpdateFile = "AutoUpdateFile.xml";
        DateTime dt;

        /// <summary>
        /// 是否重起应用程序
        /// </summary>
        public bool ReStart
        {
            get
            {
               string res=ReadXmlInfo(AutoUpdateFile, "ReStart", "Allow");
               if (res.ToLower() == "yes")
               {
                   return true;
               }
               else
               {
                   return false;
               }
            }
        }
        /// <summary>
        /// 启动的应用程序名
        /// </summary>
        public string AppName
        {
            get
            {
                return ReadXmlInfo(AutoUpdateFile, "AppName", "Name");
            }
        }
        /// <summary>
        /// 是否启用强制更新
        /// </summary>
        public bool ForcedUpdating
        {
            get
            {
                string res = ReadXmlInfo(AutoUpdateFile, "forcedupdating", "Allow");
                if (res.ToLower() == "yes")
                {
                    return true;
                }
                else
                {

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序具有一键开启共享、加固系统安全、修改系统时间等功能。可快速修复文件夹、打印机无法共享、网上邻居无法浏览或打开缓慢等问题。程序完全采用批处理编写,所有功能一键完成,简单高效。使用本程序后,必须重启计算机,否则设置可能无效。 自动判断系统版本,全面兼容简繁中文 XP、2003、vista、7、2008、8; 查看本机当前信息:系统版本、计算机名、用户名、工作组、IP、网关、日期; 一键开启本机共享,也可手动修复共享文件夹的权限; 独有的安全加固,一键关闭系统所有共享和常见安全隐患; 通过权威的Virscan网站检测,绝无病毒(内含几十种杀软); 关于使用中360、金山等弹出安全提示: 因为修复共享需要涉及到注册表,360、金山等软件只要开启注册表监控就会弹出类似下图的警告,请选择“ 允许 ”,并勾选“ 记住我的选择 ”,以后就不会弹出。如果不允许,将造成修复失败。本工具经过几十款杀软检测绝无病毒,还不放心可自行查看源码(程序运行时,开始-运行,输入%temp%,在其中搜索 ok_share.bat 即可)。 【更新说明】2013.6.5 更新:查看本机信息,代码重写,更准,更快; 更新:全新的打包方式,杀软不再误报; 更新:采用微软的Devcon开关虚拟网卡,兼容更好; 改进:优化系统判断方式; 改进:系统版本显示更精确; 修正:网易UU虚拟网卡造成IP显示错误的Bug; 修正:部分系统因文件夹权限造成代码无效的Bug; 修正:一些早期错误代码;
好的,我可以为您提供一个简单程序,使用C语言实现扫描局域网的Modbus TCP设备IP地址。首先,您需要了解一些基本概念: 1. Modbus TCP: Modbus TCP是一种基于TCP / IP协议的通信协议,用于在工业自动化和控制系统中传输数据。 2. 局域网局域网是指在一个相对较小的地理区域内,由多台计算机互联而成的网络。 3. IP地址:IP地址是计算机在网络中的唯一标识符,用于在网络中相互通信。 下面是一个简单程序示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <winsock2.h> #include <windows.h> #pragma comment(lib, "ws2_32.lib") int main() { WSADATA wsaData; SOCKET sock; struct sockaddr_in addr; char buf[1024]; int len, ret; // 初始化Winsock if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { printf("WSAStartup failed!\n"); return -1; } // 创建socket sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock == INVALID_SOCKET) { printf("socket failed!\n"); WSACleanup(); return -1; } // 设置socket选项 int optval = 1; setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char*)&optval, sizeof(optval)); setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char*)&optval, sizeof(optval)); // 绑定socket memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_ANY); addr.sin_port = htons(0); if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR) { printf("bind failed!\n"); closesocket(sock); WSACleanup(); return -1; } // 设置广播选项 int broadcast = 1; if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (const char*)&broadcast, sizeof(broadcast)) == SOCKET_ERROR) { printf("setsockopt failed!\n"); closesocket(sock); WSACleanup(); return -1; } // 扫描局域网 memset(buf, 0, sizeof(buf)); len = sprintf(buf, "Hello, Modbus TCP!\r\n"); addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_BROADCAST); addr.sin_port = htons(502); ret = sendto(sock, buf, len, 0, (struct sockaddr*)&addr, sizeof(addr)); if (ret == SOCKET_ERROR) { printf("sendto failed!\n"); closesocket(sock); WSACleanup(); return -1; } // 接收应答 memset(buf, 0, sizeof(buf)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_ANY); addr.sin_port = htons(502); if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR) { printf("bind failed!\n"); closesocket(sock); WSACleanup(); return -1; } ret = recv(sock, buf, sizeof(buf), 0); if (ret == SOCKET_ERROR) { printf("recv failed!\n"); closesocket(sock); WSACleanup(); return -1; } printf("Modbus TCP device IP: %s\n", inet_ntoa(addr.sin_addr)); // 关闭socket closesocket(sock); // 清理Winsock WSACleanup(); return 0; } ``` 这个程序使用了Winsock库来实现网络通信,首先初始化Winsock,创建socket和绑定socket。然后设置广播选项,发送广播消息,接收设备的应答,并打印设备IP地址。最后关闭socket并清理Winsock。请注意,此程序只是一个简单的示例,实际应用中您需要根据实际情况进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值