20080715 c# socket delegate
http://www.yippeesoft.com

static int listenport = 8000;
        Socket clientsocket;
        TcpListener listener;
        Thread clientservice=null;
        private void StartListening()
        &leftsign;
            listener = new TcpListener(IPAddress.Parse("127.0.0.1"), listenport);
            listener.Start();

            while (true)
            &leftsign;
                try
                &leftsign;
                    Socket s = listener.AcceptSocket();
                    clientsocket = s;
                    clientservice = new Thread(new ThreadStart(ServiceClient));
                    clientservice.Start();

                    //MessageBox.Show(clientservice.ToString());
                &rightsign;
                catch (Exception e)
                &leftsign;
                    Console.WriteLine(e.ToString());
                &rightsign;
            &rightsign;
        &rightsign;
        private void ServiceClient()
        &leftsign;
            Socket client = clientsocket;

            bool keepalive = true;
            System.IO.BinaryReader reader = null;
            reader = new System.IO.BinaryReader(new NetworkStream(client));
          
            while (keepalive)
            &leftsign;
                //Byte[] buffer = new Byte[1024];
                //client.Receive(buffer);
               
                log("rec:" + BitConverter.ToString(dp.GetBytes()));
                log("rec:" + dp.strData);
            &rightsign;
        &rightsign;
        delegate int SetTextCallback(string text);
        public  int log(string s)
        &leftsign;
            if (this.txt.InvokeRequired)
            &leftsign;
                SetTextCallback d = new SetTextCallback(log);
                this.Invoke(d, new object[] &leftsign; s &rightsign;);
            &rightsign;
            else
            &leftsign;
                txt.Text = DateTime.Now.ToString() + s + "\\r\\n" + txt.Text;
            &rightsign;

           
            return 0;
        &rightsign;
        Thread threadListen=null;

http://www.cnblogs.com/imissherso/archive/2007/01/28/632480.html
线程间操作无效: 从不是创建控件“…”的线程访问它。

http://zhidao.baidu.com/question/56199307.html
c#线程问题:线程间操作无效:从不是创建控件picMonster1的线程访问它InvalidOperationException异常

关于多线程处理–线程切换
http://blog.csdn.net/taoxming/archive/2006/10/11/1330530.aspx

http://hi.baidu.com/84547054/blog/item/dc0077261deeba128a82a1a7.html
Visual C#托管Socket的实现方法(转载)

http://hi.baidu.com/jobsmeng/blog/item/da52b9d9401f842910df9b33.html
C#多线程编程—一个简单的聊天程序(Server)

http://1985wanggang.blog.163.com/blog/static/7763833200781424410226/
unix-C#中间件的通信

http://blog.cnbb.com.cn/outcast/archive/2008/03/02/71524.html
C#中TcpListener类的使用(AcceptTcpClient()方法-MSDN)

http://barton131420.cnblogs.com/archive/2005/12/07/292176.html
细节决定成败:映射枚举

XmlNode node = objTmplt.Attributes["name"];
if (node != null)
styleName = node.Value;
or:
XmlNode node = objTmplt.Attributes["name"];
if (node != null && !string.IsNullOrEmpty(node.Value))
styleName = node.Value

http://www.codeproject.com/KB/cs/xmladapter.aspx
Quick Xml Read and Write Adapters for C#

也谈用反射实现Enum→String映射:一种重视性能的方法
http://www.cnblogs.com/smalldust/archive/2006/04/25/384657.html

http://www.codeproject.com/KB/dotnet/unhandledexceptions.aspx

历史博文

标签:, ,
三月 3, 2009 at 2:13 下午 by yippee 1,036 次
Category: Dev
Tags: , ,