用的TCP,阻塞,与终端连接成功,但就是收不到数据.
但如果直接发就可以发过去.....可能就是在streamReader.ReadLine()这儿出了问题.
请大家帮忙给看看,谢谢...private void Listen ( ) 

//创建一个tcpListener对象,此对象主要是对给定端口进行侦听 
tcpListener = new TcpListener(80); 
//开始侦听 
tcpListener.Start(); 
//返回可以用以处理连接的Socket实例 
socketForClient = tcpListener.AcceptSocket ( ) ; 
try 

//如果返回值是"true",则产生的套节字已经接受来自远方的连接请求 
if ( socketForClient.Connected ) 

ListBox1.Items.Add ( "已经和客户端成功连接!" ) ; 
while ( true ) 
{
//创建networkStream对象通过网络套节字来接受和发送数据 
networkStream = new NetworkStream ( socketForClient ) ; //从当前数据流中读取一行字符,返回值是字符串 
streamReader = new StreamReader ( networkStream ) ; 
string msg = streamReader.ReadLine ( ) ;
ListBox1.Items.Add ( "收到客户端信息:" + msg ) ; 
streamWriter = new StreamWriter ( networkStream ) ; 
//往当前的数据流中写入一行字符串
streamWriter.WriteLine("1");
//刷新当前数据流中的数据 
streamWriter.Flush( );



catch ( Exception ey ) 

MessageBox.Show ( ey.ToString ( ) ) ; 

}

解决方案 »

  1.   

    socketForClient = tcpListener.AcceptSocket ( ) ;
    我记得这个似乎在放在while里面的
      

  2.   

    你不要用ReadLine,直接用Read试试!
      

  3.   

    http://www.cnblogs.com/jetxia/archive/2007/03/20/681356.aspx=======================
    DAY DAY UP
      

  4.   

    socketForClient = tcpListener.AcceptSocket ( ) ;放while ( true ) 里面.
      

  5.   

    是的while(true)
    {
    ……
    }
      

  6.   

    为什么read()可以,readline()不行?
      

  7.   

    chang110cn(口号) 
    为什么read()可以,readline()不行?
    ----------------------------------
    对方发过来的数据里没有换行符。
      

  8.   

    这个只能接受一次,另外如wzd24(牧野)所说,对方数据没有换行符。
    在我看来,你这个程序段根本没有好好的加工,为什么不用while(true)使得服务端更完美一点呢,另外你考虑过如果N个客户端连接上来,并且同时发数据,你要怎么处理么?你考虑过怎么向这些客户端发指令么?你考虑过怎么样解析客户端的数据么?你考虑过如果客户端自动断掉,你怎么断点续传么?
      

  9.   

    LS的………………无语…………
    谁规定Socket只能按 一发一收 一收一发 的规则通讯 了???