我想做一个简单的P2P聊天程序,
以下是服务器端的代码:
TcpListener tcpl;
NetworkStream networkStream;
StreamReader read;
TcpClient tcpc;private void Form1_Load(object sender, System.EventArgs e)
{
IPAddress ipAddress = Dns.Resolve("localhost").AddressList[0];
tcpl=new TcpListener(ipAddress,1236);
tcpl.Start();
lbl1.Text="服务器已经启动!";
Form2 form2=new Form2();//启动客户端的窗体
form2.Show();
}侦听
private void Listen()
{
try
{

while(true)
{
tcpc=tcpl.AcceptTcpClient();
networkStream=tcpc.GetStream();
read=new StreamReader(networkStream);
string str=read.ReadLine();
if(str.Length!=0)
lbl1.Text+=str;
networkStream.Close();
read.Close();
tcpc.Close();

}

}
catch(Exception ex)
{
lbl1.Text=ex.Message;
}
}点击button2按钮调用private void button2_Click(object sender, System.EventArgs e)
{

Thread thd=new Thread(new ThreadStart(Listen));
thd.Start();
//tcpl.Stop();


}以下是客户端代码
private NetworkStream networkStream;
StreamWriter streamWriter;
通过此按钮发送数据流
private void btn_Click(object sender, System.EventArgs e)
{

networkStream=tcpc.GetStream();
streamWriter=new StreamWriter(networkStream);
streamWriter.WriteLine(txt.Text);
streamWriter.Flush();

}结果是:发送一次数据流后,然后启动服务器进行侦听,能接收到数据,可以第二次发送后服务器就收不到数据了,大家看看我的代码有什么问题没?

解决方案 »

  1.   

    up---------------------------------------------------------------------------------------------
    腰缠70元到月入近10万
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=453IT工程师 毕业4年我年薪涨到30万 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=51126岁青年坐拥千万域名资产 从小玩家变成CEO 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=515程序员的酸甜苦辣:告别Coding 
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=341从月薪3500到700万(一)
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=170网络草根月赚3000的十种方法
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=517如果我是女的 我肯定不会嫁给做网站的
    http://www.hunbei.com.cn/Article/ArticleShow.asp?ArticleID=512