20080715 c# socket delegate
http://www.shengfang.org
static int listenport = 8000;
Socket clientsocket;
TcpListener listener;
Thread clientservice=null;
private void StartListening()
{
listener = new TcpListener(IPAddress.Parse("127.0.0.1"), listenport);
listener.Start();
while (true)
{
try
{
Socket s = listener.AcceptSocket();
clientsocket = s;
clientservice = new Thread(new ThreadStart(ServiceClient));
clientservice.Start();
//MessageBox.Show(clientservice.ToString());
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
private void ServiceClient()
{
Socket client = clientsocket;
bool keepalive = true;
System.IO.BinaryReader reader = null;
reader = new System.IO.BinaryReader(new NetworkStream(client));
while (keepalive)
{
//Byte[] buffer = new Byte[1024];
//client.Receive(buffer);
log("rec:" + BitConverter.ToString(dp.GetBytes()));
log("rec:" + dp.strData);
}
}
delegate int SetTextCallback(string text);
public int log(string s)
{
if (this.txt.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(log);
this.Invoke(d, new object[] { s });
}
else
{
txt.Text = DateTime.Now.ToString() + s + "\r\n" + txt.Text;
}
return 0;
}
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