大家好,欢迎来到IT知识分享网。
远程关机的方法很多。首先就是调用系统的运行命令。其次也可以费别写一个服务端和客户端,当然我们也可以借助第三方插件来实现远程关机。
第一种(调用系统的运行命令)
这个就非常简单了,直接打开cmd.exe文件,写入关机命令就行了。
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c " + "shutdown -s -m\\192.168.1.255 -t 0";//0秒后关闭ip地址为192.168.1.255的计算机
p.Start();//
就是这么简单。
第二种(服务端和客户端)
这种方式是基于第一种方法的,因为也是通过cmd命令来达到关机的。通过客户端给服务端发送的消息,服务端识别客户端发送的消息来响应对应的方法。只是把写入的shutdown语句换一换就可以了。
p.StartInfo.Arguments = "/c " + "shutdown -p"//直接关机
第三种(借助第三方插件来实现)
把拥有网络的通信的软件安装到你要远程关机的计算机上面(本人安装的是 ishutdown 这个软件,并下载了一个网络打印机)。通过TCP协议和这个软件的通信达到关机功能的实现。
using System.IO;
using System.Net.Sockets;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
public class Shutdown : MonoBehaviour {
public Text ip;//ip地址
public int port = 4505;//端口号
public void OnShutDownComputer()
{
try
{
TcpClient tcpClient = new TcpClient();
tcpClient.Connect(ip.text, port);
Debug.Log("连接完成");
//Connect方法使用指定的IP地址和端口号将客户端连接到远程TCP主机
//读入控制台输入的文字
string str = "shutdown";
Stream stm = tcpClient.GetStream();
//定义数据流,用于发送和接收数据
ASCIIEncoding AS = new ASCIIEncoding();
//将字符串转换为byte类型
byte[] b = AS.GetBytes(str);
//Write(参数1,参数2,参数3)表示向服务端发送字符串
//参数1指将此数组复制到当前流,参数2指从零开始的字节偏移量,参数3指要写入当前流的字节数(即字符串长度)
stm.Write(b, 0, b.Length);
Debug.Log("发送完成");
}
catch (System.Exception e)
{
print("错误信息:" + e.Message);//错误信息
}
}
}
总之,需要根据我们的需求来选择方法。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10197.html