C# TCP接收信息问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:21:38
while (true)
{
tcpClient = tcpListener.AcceptTcpClient();
.
.
.
}

这样的接收信息的代码,如果100台客户端同时在发文件给它会互相等待的么?
谢谢

又是你!
你要理解tcpListener其实是一个电话接线员,真正和你通话的是tcpClient,所以,这个地方的tcpClient绝对不能是一个.

while (true)
{
TcpClient tcpClient = tcpListener.AcceptTcpClient();//每次来一个客户端请求,就产生一个TcpClient与之通讯
//下面应该启动一个新线程,并且把TcpClient当作参数传入线程中,线程中实现文件传输之类的操作,就实现了多客户端并发收发信息,不会相互干扰
}

朋友你问的问题很好。
首先,C# 网络编程是需要线程的。。 所以不会出现相互等待的情况
我可以试着写下面的内容,我想你一定会理解的。。
使用线程,首先要引用命名空间:using System.Threading;
while (true)
{
tcpClient tc= tcpListener.AcceptTcpClient();
//此处是新建线程
Thread th=new Thread(处理已经连接对象的方法);
//将线程设置为后台线程
th.isbackground=true;
//线程开始工作
th.start(tc);
}

通过上面的语句,每当出现一个连接,就会自动建立一个线程来处理此连接(如发送或接收),不会出现相互等待的情况。