unity 3D 远程关机

unity 3D 远程关机远程关机

大家好,欢迎来到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);//错误信息
        }
    }
}

unity 3D 远程关机

unity 3D 远程关机

总之,需要根据我们的需求来选择方法。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10197.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信