zoukankan      html  css  js  c++  java
  • C#基础:命令解析

    1、普通格式命令的解析

    例如: RENA<SP>E:\A.txt<SP>C:\B.txt<CRLF> (SP -> 空格,CRLF -> 回车加换行)
    作用:将A.txt 重命名为B.txt,并移动他的位置
    解析:
    byte[] myByte = new Byte[1024];
    // mySock 假设为建立连接的套接字对象
    NetwordStream netSream = new NetwordStream(mySock);
    netSream.Read(myByte, 0, myByte.Length);
    stirng str = System.Text.Encoding.ASCII.GetString(myByte);
    int x = str.IndexOf(" ");
    stirng allCommand = str.Substring(0, x);
    char[] a = new char[] {' '};
    string[] commStr = allCommand.Split(a);
    string command = commStr[0]; // RENA
    string parameter1 = commStr[1]; // E:\A.txt
    string parameter2 = commStr[2]; // C:\B.txt

    2、特殊格式命令解析

    构造一个RichTextBox控件对象,将有效字符串的值赋给该控件,然后再从该控件中按行读取数据:
    string readMessage = "USER" + " " + "AAA" + " " + "BBB" + "EOF";
    RichTextBox rich = new RichTextBox();
    rich.Text = readMessage;
    int i = rich.Lines.Length;
    string comm = richLines[0];
    string comm1 = rich.Lines[1];
    string comm2 = rich.Lines[2];
    string comm3 = rich.Lines[3].Substring(0, rich.Lines[3].Length - 3);

    3、线程

    <1> 创建线程
    using System.Threading;
    Thread thread = new Thread(new ThreadStart("要调用的线程名"));

    <2> 启动线程
    thread.Start();

    <3> 阻塞和重新启动当前线程
    Thread.Sleep(100); // 阻塞线程,参数单位为毫秒
    Thread.Suspend(); // 该线程将阻塞,直到另外一个线程调用它,才会被唤醒,另外一个线程将调用Thread.Resume();

    Thread.Join(TimeSpan); // 使一个线程等待另一个线程停止 (TimeSpan -> 时间间隔,类型值)

    <4> 线程销毁
    Thread.Abort(); // 调用该方法时在指定线程上引发ThreadAbortException异常,但除非调用ResetAbort(), 否则会在catch块的结尾再次触发,
    // ResetAbort()可以取消Abort的请求,并阻止ThreadAbortException终止此线程,但线程不一定会立即终止,因为有可能程
    // 序会在finally块中执行大量的运算,为避免这种情况,在调用Thread.Abort()后请调用Thread.Join()。
    // 如果对尚未启动的线程调用Abort,则当前调用Start时会终止线程;如果对已挂起的线程调用,则该线程将继续,然后终止;
    Thread.Interrupt(); // 用于 中断 处于Wait、Sleep、Join线程状态的线程;如果此线程当前未阻塞,在等待,休眠或连接状态中,则下次开
    // 始阻塞时,它将被中断

  • 相关阅读:
    jquery 滚动条插件 jquery.nanoscroller.js
    Lost connection to MySQL server at 'reading initial communication packet' 错误解决
    ajax上传图片 jquery插件 jquery.form.js 的方法 ajaxSubmit; AjaxForm与AjaxSubmit的差异
    转:MVC3系列:~Html.BeginForm与Ajax.BeginForm
    转:MVC2表单验证失败后,直接返回View,已填写的内容就会清空,可以这样做;MVC2输出文本;MVC2输出PDF文件
    Java中的Dom4j
    Java插件之Jrebel
    Idea中的一些快捷键
    Java中的XML
    SQL Server 表值函数
  • 原文地址:https://www.cnblogs.com/kafeibuku/p/5320399.html
Copyright © 2011-2022 走看看