Socket socket = listener.Accept();
socket.Receive();

解决方案 »

  1.   


        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Server is running ...  ");
                IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });
                TcpListener listener = new TcpListener(ip, 8500);
                listener.Start();           // 开始侦听
                Console.WriteLine("Start Listening ...");
                Console.WriteLine(@"\n\n输入\ Q\ 键退出。");
                ConsoleKey key;
                byte[] m_RecvDataBuffer = new byte[0x10000];
                Socket socketlisten = listener.AcceptSocket();
                int Count = socketlisten.Receive(m_RecvDataBuffer);//只接受一次,线程会被堵塞在此,除非有数据包进来
                byte[] receiveBuffer = new byte[Count];
                Buffer.BlockCopy(m_RecvDataBuffer, 0, receiveBuffer, 0, Count);
                if (Count > 0)
                {
                    foreach (byte by in receiveBuffer)
                    {
                        Console.WriteLine(by);
                    }
                }
                do
                {
                    key = Console.ReadKey(true).Key;            } while (key != ConsoleKey.Q);
            }
        }
    测试代码Socket send = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
    if (!send.Connected)
                {
                    send.Connect("127.0.0.1", 8500);
                }
                byte[] by = new byte[]{
                11,12,13};
                send.Send(by);
      

  2.   


                IPAddress ip = IPAddress.Parse("127.0.0.1");
                
                TcpListener listener = new TcpListener(ip, 9999);
                listener.Start();//开始侦听
                Console.WriteLine("开始侦听");
                while(true)
                {
                    TcpClient tcpclient = listener.AcceptTcpClient();
                    Console.WriteLine("连接成功{0}-->{1}", tcpclient.Client.RemoteEndPoint.ToString(), tcpclient.Client.LocalEndPoint.ToString());
                    NetworkStream ns = tcpclient.GetStream();
                    StreamReader sread = new StreamReader(ns);
                    Console.WriteLine(sread.ReadToEnd());
                }