zoukankan      html  css  js  c++  java
  • Synchronous Server Socket Example

    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    
    public class SynchronousSocketListener {
        
        // 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) {
                        bytes = new byte[1024];
                        int bytesRec = handler.Receive(bytes);
                        data += Encoding.ASCII.GetString(bytes,0,bytesRec);
                        if (data.IndexOf("<EOF>") > -1) {
                            break;
                        }
                    }
    
                    // Show the data on the console.
                    Console.WriteLine( "Text received : {0}", data);
    
                    // 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();
            
        }
    
        public static int Main(String[] args) {
            StartListening();
            return 0;
        }
    }
  • 相关阅读:
    IplImage, CvMat, Mat 的关系
    neon memory copy
    基于v4l2的webcam应用, 本地预监
    makefile写法实例
    Ubuntu 12.04 使用Eclipse搭建C/C++编译环境
    xapp1167与TRD14.4 关系
    v3学院带你一次性认清UART、RS-232、RS-422、RS-485的区别
    v3学院教你学习-task和function的异同
    寒假参加V3
    FPGA培训学习心得
  • 原文地址:https://www.cnblogs.com/liuxinls/p/2909853.html
Copyright © 2011-2022 走看看