一个问题,自己觉得挺复杂,关于线程的

YUGIBALSA 2003-07-31 03:33:20
我想做一个程序,它有一个线程,专门用来监视某个指定的网络端口,一旦发现连接请求,就创建一个连接线程,和对方建起TCP连接,当线程数到达预设最大值时,拒绝连接请求,除非部分线程退出,我不知道如何动态创建线程,希望大家赐教
...全文
19 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
outfile 2003-08-02
  • 打赏
  • 举报
回复
gz
windinwing 2003-08-02
  • 打赏
  • 举报
回复
try
{
// 检查IP
if(m_IPAddress.ToLower().IndexOf("all") > -1)
{
FTP_Listener = new TcpListener(IPAddress.Any,m_port);
}
else
{
FTP_Listener = new TcpListener(IPAddress.Parse(m_IPAddress),m_port);
}
// 开始监听
FTP_Listener.Start();

while(true)

{
if(m_SessionTable.Count <= m_MaxThreads)//m_MaxThreads为最大线程
{

Socket clientSocket = FTP_Listener.AcceptSocket();

string sessionID = clientSocket.GetHashCode().ToString();

//写入日志
_LogWriter logWriter = new _LogWriter(this.SessionLog);
FTP_Session session = new FTP_Session(clientSocket,this,sessionID,logWriter);

Thread clientThread = new Thread(new ThreadStart(session.StartProcessing));

// 添加到会话列表
AddSession(sessionID,session,logWriter);

// Start proccessing
clientThread.Start();
}
else
{
Thread.Sleep(100);
}

}
colin666 2003-08-01
  • 打赏
  • 举报
回复
做一个线程的数组,有新的连接时,去查找空闲的线程。如果线程都不空闲,则拒绝。
YUGIBALSA 2003-08-01
  • 打赏
  • 举报
回复
我不想用线程池实现
jennyq_zq 2003-07-31
  • 打赏
  • 举报
回复
How about
System.Threading.ThreadPool
fourfire29 2003-07-31
  • 打赏
  • 举报
回复
gz

110,535

社区成员

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

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

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