C#常用代码

版权声明:本文为博主原创文章,转载请附上链接。 https://blog.csdn.net/woswod/article/details/82288740

最近学习用C#写了几个程序,记录一下常用的几个操作,方便以后Copy

文件操作

FileStream fs = null;
try
{
    byte[] buf;
    FileStream fs = new FileStream(strSampleFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    buf = new byte[fs.Length];
    fs.Read(buf, 0, buff.Length);
    fs.Close(); //需要显示关闭
}
catch(Except ex)
{
    Console.WriteLine(ex.Message);    
    if(null != fs)
        fs.Close(); //需要显示关闭
}
//使用using机制,会自动马上释放托管资源,可以不必显式调用Close()
byte[] buf;
using (Stream sin = new FileStream(strSampleFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    buf = new byte[sin.Length];
    sin.Read(buf, 0, buff.Length);
}

网络通信 创建线程

/// TCP监听
private static void ListenClientConnect()  
{  
    IPAddress ip = IPAddress.Parse("0.0.0.0");
    sockSrv = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    sockSrv.Bind(new IPEndPoint(ip, 4444));  //绑定IP地址:端口  
    sockSrv.Listen(10);    //设定排队连接请求数
    Console.WriteLine("Waiting for a new connection......");

    while (true)  
    {
        Socket sockClt = sockSrv.Accept();
        //IPEndPoint ipClt = (IPEndPoint)(sockClt.RemoteEndPoint);
        Console.WriteLine("A new connection established : %s", sockClt.RemoteEndPoint.ToString());
        Thread receiveThread = new Thread(EchoThread);
        receiveThread.Start(sockClt);         
        receiveThread.Join(); //单线程模式
    }  
}  

/// 工作线程 
private static void EchoThread(object clientSocket)  
{
    Socket sockClt = (Socket)clientSocket;
    byte[] buf = new byte[1024];
    UInt32 uiCount = 0;
    while (true)  
    {  
        try  
        {
            int iLen = sockClt.Receive(buf);
            if (iLen <= 0)
            {
                Console.WriteLine("disconnected!\n");
                break;
            }
            Console.WriteLine(buf);
            sockClt.Send(strParam);
        }  
        catch(Exception ex)  
        {  
            Console.WriteLine(ex.Message);
            sockClt.Shutdown(SocketShutdown.Both);
            sockClt.Close();  
            break;  
        }  
    }  
}

编码转换

string strParam = System.Text.Encoding.ASCII.GetString(buf, 0, iLen);
Console.WriteLine("{0}\n", strParam);

猜你喜欢

转载自blog.csdn.net/woswod/article/details/82288740