C# socket 例子 之 伺服器端

來源:互聯網
上載者:User

// Incoming data from the client.
      public static string data = null;
 
     public static void StartListening() {
        // Data buffer for incoming data.
        byte[] bytes = new Byte[1024];

        // Establish the local endpoint for the socket.
        // Dns.GetHostName returns the name of the
         // host running the application.
         IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
        IPAddress ipAddress = ipHostInfo.AddressList[0];
        IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);

        // Create a TCP/IP socket.
        Socket listener = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream, ProtocolType.Tcp );

        // Bind the socket to the local endpoint and
        // listen for incoming connections.
         try {
            listener.Bind(localEndPoint);
             listener.Listen(10);
 
            // Start listening for connections.
            while (true) {
                Console.WriteLine("Waiting for a connection");
                 // Program is suspended while waiting for an incoming connection.
                Socket handler = listener.Accept();
                 data = null;

                // An incoming connection needs to be processed.
                while (true) {
                    data = string.Empty;
                     bytes = new byte[1024];
                     int bytesRec = handler.Receive(bytes);
                     data += Encoding.GetEncoding("GB2312").GetString(bytes,0,bytesRec);
                     if (data.IndexOf("<EOF>") > -1) {
                         // Show the data on the console.
                         Console.WriteLine("Text received : {0}", data);
                         continue;
                     }

                     // Echo the data back to the client.
                     byte[] msg = Encoding.ASCII.GetBytes(data);

                     handler.Send(msg);
                 }
 
          
 
                 handler.Shutdown(SocketShutdown.Both);
                 handler.Close();
             }
           
         } catch (Exception e) {
            Console.WriteLine(e.ToString());
         }
 
         Console.WriteLine("\nPress ENTER to continue");
         Console.Read();
        
     }
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.