您的位置:程序门 -> .net技术 -> c#



求救!关于streamreader


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求救!关于streamreader
发表于:2007-03-20 16:03:53 楼主
private   void   thstart(object   obj)
                {
                        console.writeline( "建立分支点对点连接... ");
                        networkstream   ns   =   (networkstream)obj;
                        sr   =   new   streamreader(ns);
                        sw   =   new   streamwriter(ns);
                        while   (true)
                        {
                                if   (ns.dataavailable)
                                {
                                        console.writeline( "开始接受客户端命令... ");
                                        byte[]   stream   =   new   byte[256];
                                        ns.read(stream,   0,   stream.length);
                                        console.writeline(system.text.encoding.utf8.getstring(stream));
                                        sw.writeline( "登陆成功拉 ");
                                        sw.flush();
                                        string   order   =   sr.readline();
                                        console.writeline( "命令:{0} ",   order);
                                        string[]   spliter   =   order.split( ', ');
                                        switch   (spliter[0])
                                        {
                                                //用户登录
                                                case   "login ":
                                                        console.writeline( "用户试图登陆 ");
                                                        sw.write( "login,1 ");
                                                        break;
                                                //读取用户列表
                                                case   "readuserlist ":
                                                        string   tempstr   =   "readuserlist, ";
                                                        for   (int   i   =   0;   i   <   userlisttable.count;   i++)
                                                        {
                                                                tempstr   +=   userlisttable[i];
                                                        }
                                                        sw.write(tempstr);
                                                        break;
                                        }
                                }
                        }
                }

为什么我的string   order   =   sr.readline();
读取不到数据?而且程序卡到这不能继续执行~~
发表于:2007-03-20 16:25:451楼 得分:0
怎么没人回答呢?555555555555555
发表于:2007-03-20 16:27:292楼 得分:0
没有人知道吗??
发表于:2007-03-20 16:27:403楼 得分:0
真的没人知道吗?
发表于:2007-03-20 17:19:214楼 得分:0
//先看看别人是怎么写的
//搜索出来的

void   streamfile(socket   clientsocket)
  {
    networkstream   networkstream   =  
        new   networkstream(clientsocket);
    system.io.streamwriter   streamwriter   =
        new   system.io.streamwriter(networkstream);
    system.io.streamreader   streamreader   =  
        new   system.io.streamreader(@ "c:\a.txt ");
    string   strstream;
    do   {
      strstream   =   streamreader.readline();
      if(strstream   !=   null   )
      {
        streamwriter.writeline(strstream);
        streamwriter.flush();
      }
    }   while   (strstream   !=   null);
    streamreader.close();
    networkstream.close();
    streamwriter.close();                  
  }
 
  //client1   code
  using   system.net.sockets;
  tcpclient   serversocket;
  try   {
    serversocket   =   new   tcpclient( "localhost ",   65000);
  }   catch()   {}
  networkstream   networkstream   =  
      seversocket.getstream();
  system.io.streamreader   streamreader   =  
      new   system.io.streamreader(networkstream);
  try   {
    string   strout;
    do   {
      if   (strout   !=   null)
      {
        streamreader.readline(strout);
        if   (strout   !=   null   )  
        {
          console.writeline(strout);
        }
      }
    }   while   (strout   !=   null   );
  }   catch()   {}

------------
纯属顶贴
发表于:2007-03-20 17:25:575楼 得分:0
汗,刚才回复了,怎么就不见了,谁给俺删了!
ns.read(stream,   0,   stream.length);
改为beginread   和   endread试试
------------
纯属试试
发表于:2008-01-09 23:37:016楼 得分:0
有可能是你的socket收发数据没成功
发表于:2008-01-09 23:45:137楼 得分:0
sr.readline();  
是要读入一行才能返回,也就是发来的数据中要有换行标记,就是说发送的数据结尾要有'\n'   要是不行试一下   '\r\n'.


快速检索

最新资讯
热门点击