zoukankan      html  css  js  c++  java
  • 使用C#中的Socket进行通讯

    class Program
        {
            static void Main(string[] args)
            {
                Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    
                serverSocket.Bind(new IPEndPoint(IPAddress.Parse("10.6.0.38"), 88));
    
                serverSocket.Listen(19);
    
                serverSocket.BeginAccept(ClientAccept, serverSocket);
                Console.ReadLine();
    
            }
            static byte[] buffer = new byte[1024];
            static void ClientAccept(IAsyncResult ar)
            {
    
    
                Socket serverSocket = ar.AsyncState as Socket;
    
                Socket clientSocket = serverSocket.EndAccept(ar);
    
                clientSocket.Send(Encoding.UTF8.GetBytes("hellooo"));
    
                clientSocket.BeginReceive(buffer, 0, 1024, SocketFlags.None, ServerReceive, clientSocket);
    
                serverSocket.BeginAccept(ClientAccept, serverSocket);
    
            }
    
            static void ServerReceive(IAsyncResult ar)
            {
                Socket clientSOcket = ar.AsyncState as Socket;
    
                try
                {
                    int len = clientSOcket.EndReceive(ar);
                    if(len == 0)
                    {
                        clientSOcket.Close();
                        return;
                    }
                    Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, len));
    
                    clientSOcket.BeginReceive(buffer, 0, 1024, SocketFlags.None, ServerReceive, clientSOcket);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    clientSOcket.Close();
                }
    
    
                Console.ReadLine();
            }
        }

    客户端

    class Program
        {
            static void Main(string[] args)
            {
                byte[] buffer = new byte[1024];
    
                Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    
                clientSocket.Connect(new IPEndPoint(IPAddress.Parse("10.6.0.38"), 88));
    
                int len = clientSocket.Receive(buffer, 0, 1024, SocketFlags.None);
    
                Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, len));
    
                while (true)
                {
                    string temp = Console.ReadLine();
    
                    if (temp == "c")
                    {
                        clientSocket.Close();
                        return;
                    }
    
                    byte[] tempByte = Encoding.UTF8.GetBytes(temp);
    
                    clientSocket.Send(tempByte);
                }
    
            }
        }
    本博客所有内容均为原创,转载请注明出处.
  • 相关阅读:
    求链表的倒数第k个节点
    打印蛇形矩阵
    数组元素前移问题(今日头条笔试题)
    单链表的节点内数据值的删除问题(携程网笔试题)
    子树判断问题(百度笔试题)
    求链表的第一个公共节点问题(好未来笔试题)
    正则表达式常用总结
    正则表达式start(),end(),group()方法
    test、exec、match区别
    matches()方法
  • 原文地址:https://www.cnblogs.com/what-lee/p/8722934.html
Copyright © 2011-2022 走看看