• 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;
        }
    }
  • 相关阅读:
    批处理集锦——(2)自定义函数
    批处理集锦——(1)怎么输出空行
    批处理实例——批量修改电视剧文件名称
    error C3861: “LOG4CPLUS_DEBUG”: 找不到标识
    vc个版本对应的vs版本
    Yii2中系统定义的常用路径别名,如果获取web的url
    asp提取声母源码
    Windows Error Code(windows错误代码详解)
    VS2013编译经常卡在正在从以下位置加载xxx.dll的符号
    Python3字符串截取值
  • 原文地址:https://www.cnblogs.com/liuxinls/p/2909853.html
Copyright © 2020-2023  润新知