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("客户端已关闭!");
// }
// }

...全文
100 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
-琥珀川- 2013-04-23
  • 打赏
  • 举报
回复

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧