socket中线程问题
-琥珀川- 2013-04-23 04:41:09 static Socket serverSocket;
// static Socket clientSocket;
// static Thread thread; //静态的线程
// static void Main(string[] args)
// {
// IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 60000);
// serverSocket = new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
// serverSocket.Bind(ipep);
// serverSocket.Listen(10);
// while (true)
// {
// clientSocket = serverSocket.Accept(); //当接收为空时会阻塞
我觉得有问题。。当接受一个socket时就会执行下面的线程、、这没有问题,当又有一个不同的client接受过来时这个静态的线程会被覆盖吧。。。?(还是不被覆盖)
sever又和这个新的client对话而旧的client就不发生对话了(中断吧。。),,我的理解对吗??那么这个线程我觉得完全没有呀
。。要群聊的话是不是应该建立一个线程组分别和他们对话。。
我理解的对吗???。。
// thread = new Thread(new ThreadStart(doWork)); //??????????????
// thread.Start();
// }
// }
// private static void doWork()
// {
// Socket s = clientSocket;//客户端信息
// IPEndPoint ipEndPoint = (IPEndPoint)s.RemoteEndPoint;
// String address = ipEndPoint.Address.ToString();
// String port = ipEndPoint.Port.ToString();
// Console.WriteLine(address + ":" + port + " 连接过来了");
// Byte[] inBuffer = new Byte[1024];
// Byte[] outBuffer = new Byte[1024];
// String inBufferStr;
// String outBufferStr;
// try
// {
// while (true)
// {
// inBufferStr = Encoding.ASCII.GetString(inBuffer);
// Console.WriteLine(address + ":" + port + "说:");
// Console.WriteLine(inBufferStr);
// outBufferStr = Console.ReadLine();
// outBuffer = Encoding.ASCII.GetBytes(outBufferStr);
// s.Send(outBuffer, outBuffer.Length, SocketFlags.None);
// s.Receive(inBuffer, 1024, SocketFlags.None);//如果接收的消息为空 阻塞 当前循环
// }
// }
// catch
// {
// Console.WriteLine("客户端已关闭!");
// }
// }