使用TcpListener的AcceptSocket()方法和AcceptTcpClient()方法接受远端数据时,程序总是好像死机一样!请问如何解决?
2004-11-30 15:12
1271 查看
为什么我在使用TcpListener的AcceptSocket()方法和AcceptTcpClient()方法接受远端数据时,程序总是好像死机一样。进行调试时关标停在AcceptSocket()方法或AcceptTcpClient()方法上就不动了,一直等到数据读入才向下继续执行。请问解决这种死机的现象应该怎么做?谢谢具体代码如下:
/////////////////////////////////////AcceptSocket
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
tcpl = new TcpListener(IPAddress.Parse("172.18.12.34"),8000); // 在端口 8000 上进行侦听
tcpl.Start();
if (!tcpl.Pending())
{
Thread.Sleep(200);
Socket s = tcpl.AcceptSocket();
Thread.Sleep(200);
}
///////////////////////////////////AcceptTcpClient
Int32 port = 8000;
TcpListener server = new TcpListener(IPAddress.Parse("172.18.12.34"),port);
server.Start();
Byte[] bytes = new Byte[36];
String data = null;
bool a = true;
while(a)
{
TcpClient client = server.AcceptTcpClient();
data = null;
NetworkStream stream = client.GetStream();
Int32 i;
while((i = stream.Read(bytes, 0, bytes.Length))!=0)
{
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
}
}
相关文章推荐
- ISA Server 的故障排除工具(2)
- SQL Server 索引结构及其使用(一)--深入浅出理解索引结构第1/4页
- Slow shutdown of Windows 2003 Server after installing Exchange 2003 Server
- Slow shutdown of WindoServer after installing Exchange 2003 Server
- ATL实现Connection Point的一种简单的方法
- 如何用VB获得机器的MAC地址
- PHP 的 MySQL 操作类,跟手册上的函数一样用,但是更方便了。多说无益,看了就知道了。
- Java测试规范(引用)
- oracle中的分页
- Java面试题目
- delphi中的时间操作技术(2)
- IP地址的隐藏(delphi实现 )
- 解析IP地址为主机域名
- 将某一主机域名解析为IP地址
- sql server7.0数据库恢复
- 有关TrueDBGrid的问题向各位大虾请教
- 力争最简单把*、&说清楚
- 一个画图类,类似ms_chart的线图,适用于科学仿真数据分析(一)