请教各位一个关于C# tcp接收数据的问题
本人是一个新手,在学习用C#写聊天软件时遇到了个疑问:当服务端接受一个TcpClient客户端后,可以获得一个NetworkStream,在接收数据时可以对流进行读的操作没错吧,
但是我现在想这样:
就好像QQ,一个连接完成后,在不断开的情况下,只要一接收到流(主要是字符串),就将它转为string并显示在TextBox上。可问题是怎样才能让它做到这样,我记得COM组件Winsock有一个DataArrival事件 是在有数据交换时触发(记得不是太清楚),可以在这个事件下给文本框赋值。但C#里好像没有类似的事件...难道是NetworkStream的read方法一直在接受流而没有停止过?如果是这样的话,怎样把他收到的流立刻处理?用一个循环?多线程?
各位大虾帮帮小弟,如果能给个样本源码(最好带注释)给小弟我研究下最好
程序代码:using System;
using System.Collections.Generic;
using System.Text;
using using System.Threading;
using namespace tcp_server
{
class Program
{
public static TcpListener server = null;
public static TcpClient newClient = null;
public static NetworkStream ns = null;
public static StreamReader sRead = null;
static void Main(string[] args)
{
server = new TcpListener(7300);
server.Start();
while (true)
{
newClient = server.AcceptTcpClient();
Console.WriteLine("有新的连接");
ns = newClient.GetStream();
sRead = new StreamReader(ns);
Console.Write(sRead.ReadToEnd());
/*这只能显示一次,当过程走过后,就不会显示
* 可能收到耶不会处理,我要他像QQ一样即时处理
* 我就是想只要他又数据就给我显示出来
* 请问各位大虾应该怎么写啊?
* 本人新手
*/
}
}
}
}




