繼電器

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("接收到服務(wù)器端信息");
    //        //  text.text = Encoding.UTF8.GetString(buffer);
    //        Receive();
    //    }
    //}
    public void Update()
    {
        //if (revText != null && revText != "")
        //{
        //    text.text = revText;
        //    //重置視頻進(jìn)度
        //   // VideoClient.instance.SetTime();
        //    revText = string.Empty;
        //}
        //else
        //{
        //    return;
        //}
    }

    /// <summary>
    /// 短連接,最后調(diào)用Close釋放資源
    /// </summary>
    /// <param name="input"></param>
    //public static void shotlink(string input)
    //{
    //    //設(shè)定服務(wù)器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)); //配置服務(wù)器IP與端口  
    //        Console.WriteLine("連接服務(wù)器成功");
    //    }
    //    catch
    //    {
    //        Console.WriteLine("連接服務(wù)器失敗,請按回車鍵退出!");
    //        Console.ReadLine();
    //        return;
    //    }

    //    string sendMessage = "你好";//發(fā)送到服務(wù)端的內(nèi)容
    //    clientSocket.Send(Encoding.UTF8.GetBytes(sendMessage));//向服務(wù)器發(fā)送數(shù)據(jù),需要發(fā)送中文則需要使用Encoding.UTF8.GetBytes(),否則會亂碼
    //    Console.WriteLine("向服務(wù)器發(fā)送消息:" + sendMessage);

    //    ////接受從服務(wù)器返回的信息
    //    //string recvStr = "";
    //    //byte[] recvBytes = new byte[1024];
    //    //int bytes;
    //    //bytes = clientSocket.Receive(recvBytes, recvBytes.Length, 0);    //從服務(wù)器端接受返回信息 
    //    //recvStr += Encoding.UTF8.GetString(recvBytes, 0, bytes);
    //    //Console.WriteLine("服務(wù)端發(fā)來消息:{0}", recvStr);//回顯服務(wù)器的返回信息

    //    //每次完成通信后,關(guān)閉連接并釋放資源
    //    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)); //配置服務(wù)器IP與端口  
            socket.Connect(host, port);
            Console.WriteLine("連接服務(wù)器成功");
        }
        catch
        {
            Console.WriteLine("連接服務(wù)器失敗,請按回車鍵退出!");
            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();
    //    }
    //}
}```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,250評論 6 530
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 97,923評論 3 413
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,041評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,475評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,253評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,801評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,882評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,023評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,530評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,494評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,639評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,177評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,890評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,289評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,552評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,242評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,626評論 2 370

推薦閱讀更多精彩內(nèi)容