继电器

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using UnityEngine.UI;
using System.Text;
using System.Threading;

public class ClientController : MonoBehaviour
{
    private static ClientController _singleton;
    public static ClientController Singleton
    {
        get
        {
            if (_singleton == null)
            {
                _singleton = FindObjectOfType<ClientController>();
            }
            return _singleton;
        }
    }
    private const int BUFFER_SIZE = 1024;
    private byte[] buffer;
    public string host ;
    public int port ;

    private Socket socket;
   // public Text text;
    public bool isShow = true;
    //public string revText;
    //public Text ipText_Client;
    //public InputField inputField;
    private void Awake()
    {
        //text.gameObject.SetActive(false);
        //text.gameObject.GetComponent<RectTransform>().localScale = Vector3.zero;
    }
    // Use this for initialization
    void Start()
    {
        //socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        //Connect();
        // ipText_Client.text = host;
    }
    //private void Connect()
    //{
    //    try
    //    {
    //        Debug.Log(0000);
    //        socket.Connect(host, port);
    //    }
    //    catch (Exception e)
    //    {
    //        //积极拒绝
    //        print(e.Message);
    //        if (isShow)
    //        {
    //            text.gameObject.SetActive(true);
    //            text.text = e.Message;
    //            text.gameObject.GetComponent<RectTransform>().localScale = Vector3.one;
    //        }
    //        else
    //        {
    //            return;
    //        }
    //    }

    //    if (socket.Connected)
    //    {
    //        text.gameObject.SetActive(false);
    //        text.gameObject.GetComponent<RectTransform>().localScale = Vector2.zero;
    //        print("Connected");
    //        //  Receive();
    //    }
    //    else
    //    {
    //        print("Connect fail");
    //        Invoke("Connect", 3);
    //    }
    //}
    ////异步接收
    //private void Receive()
    //{
    //    if (!socket.Connected)
    //        return;

    //    buffer = new byte[BUFFER_SIZE];

    //    try
    //    {
    //        socket.BeginReceive(buffer, 0, BUFFER_SIZE, SocketFlags.None, new AsyncCallback(Receive_Callback), socket);
    //    }
    //    catch (Exception e)
    //    {
    //        print(e.Message);
    //    }
    //}

    //private void Receive_Callback(IAsyncResult ar)
    //{
    //    if (!socket.Connected)
    //    {
    //        return;
    //    }

    //    int read = socket.EndReceive(ar);

    //    if (read > 0)
    //    {
    //        print(Encoding.ASCII.GetString(buffer));
    //        revText = Encoding.ASCII.GetString(buffer);
    //        Debug.Log("接收到服务器端信息");
    //        //  text.text = Encoding.UTF8.GetString(buffer);
    //        Receive();
    //    }
    //}
    public void Update()
    {
        //if (revText != null && revText != "")
        //{
        //    text.text = revText;
        //    //重置视频进度
        //   // VideoClient.instance.SetTime();
        //    revText = string.Empty;
        //}
        //else
        //{
        //    return;
        //}
    }

    /// <summary>
    /// 短连接,最后调用Close释放资源
    /// </summary>
    /// <param name="input"></param>
    //public static void shotlink(string input)
    //{
    //    //设定服务器IP地址  
    //    IPAddress ip = IPAddress.Parse("127.0.0.1");
    //    Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    //    try
    //    {
    //        clientSocket.Connect(new IPEndPoint(ip, 2000)); //配置服务器IP与端口  
    //        Console.WriteLine("连接服务器成功");
    //    }
    //    catch
    //    {
    //        Console.WriteLine("连接服务器失败,请按回车键退出!");
    //        Console.ReadLine();
    //        return;
    //    }

    //    string sendMessage = "你好";//发送到服务端的内容
    //    clientSocket.Send(Encoding.UTF8.GetBytes(sendMessage));//向服务器发送数据,需要发送中文则需要使用Encoding.UTF8.GetBytes(),否则会乱码
    //    Console.WriteLine("向服务器发送消息:" + sendMessage);

    //    ////接受从服务器返回的信息
    //    //string recvStr = "";
    //    //byte[] recvBytes = new byte[1024];
    //    //int bytes;
    //    //bytes = clientSocket.Receive(recvBytes, recvBytes.Length, 0);    //从服务器端接受返回信息 
    //    //recvStr += Encoding.UTF8.GetString(recvBytes, 0, bytes);
    //    //Console.WriteLine("服务端发来消息:{0}", recvStr);//回显服务器的返回信息

    //    //每次完成通信后,关闭连接并释放资源
    //    clientSocket.Close();
    //    Console.ReadLine();
    //}


    //public void Send(string message)
    //{
    //    if (!socket.Connected)
    //        return;
    //    //Debug.Log(inputField.text);
    //    //message = inputField.text;
    //    byte[] msg = Encoding.ASCII.GetBytes(message);
    //    socket.Send(msg);
    //}

   
    //public void SetText()
    //{
    //    isShow = false;
    //    if (text.gameObject.GetComponent<RectTransform>().localScale == Vector3.one)
    //    {
    //        text.gameObject.GetComponent<RectTransform>().localScale = Vector3.zero;
    //    }
    //    else
    //    {
    //        return;
    //    }
    //}

    public void ShotLine(string command)
    {
        Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        try
        {
            // clientSocket.Connect(new IPEndPoint(host, port)); //配置服务器IP与端口  
            socket.Connect(host, port);
            Console.WriteLine("连接服务器成功");
        }
        catch
        {
            Console.WriteLine("连接服务器失败,请按回车键退出!");
            Console.ReadLine();
            return;
        }

        if (!socket.Connected)
            return;

        string stramin16 = "61 64 6D 69 6E 0D 0A";
        string[] strsplitadmin = stramin16.Split(' ');
        byte[] data = new byte[strsplitadmin.Length];
        for (int i = 0; i < strsplitadmin.Length; i++)
        {
            data[i] = (byte)Convert.ToInt32(strsplitadmin[i], 16);
        }


        socket.Send(data);

        //  Thread.Sleep(3000);
        // stramin16 = "55 AA 00 03 00 01 01 06";
        string stramin16cmd = command;
        string[] strsplitadmincmd = stramin16cmd.Split(' ');
        byte[] datacmd = new byte[strsplitadmincmd.Length];
        for (int i = 0; i < strsplitadmincmd.Length; i++)
        {
            datacmd[i] = (byte)Convert.ToInt32(strsplitadmincmd[i], 16);
        }

        Thread.Sleep(100);

        socket.Send(datacmd);
        // socket.EndSend(data);
        socket.Close();

    }


    //public byte[] ConvertHexStrToByteArray(string hexStr)
    //{
    //    string[] array = new string[hexStr.Length / 2];
    //    byte[] bytes = new byte[array.Length];
    //    for (int i = 0; i < hexStr.Length; i++)
    //    {
    //        array[i / 2] += hexStr[i];
    //    }
    //    for (int i = 0; i < array.Length; i++)
    //    {
    //        bytes[i] = Convert.ToByte(strArray[i], 16);
    //    }
    //    return bytes;

    //}
    //private static byte[] HexStrTobyte(string hexString)
    //{
    //    hexString = hexString.Replace(" ", "");
    //    if ((hexString.Length % 2) != 0)
    //        hexString += " ";
    //    byte[] returnBytes = new byte[hexString.Length / 2];
    //    for (int i = 0; i < returnBytes.Length; i++)
    //        returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Trim(), 16);
    //    return returnBytes;
    //}

    //private void OnDisable()
    //{
    //    if (socket.Connected)
    //    {
    //        socket.Shutdown(SocketShutdown.Both);
    //        socket.Close();
    //    }
    //}
}```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容