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);
                }
    
            }
        }
    本博客所有内容均为原创,转载请注明出处.
  • 相关阅读:
    mysql数据库(1)
    通过全局异常处理机制实现接口参数校验返回指定返回类型
    http接口安全校验
    java 锁机制介绍
    通过反射获取类的所有属性值拼接成字符串工具类
    Mybatis中出现java.sql.SQLException: 无效的列类型: 1111
    判断两个Long相等
    jwt工具类
    mybatis #{}和${}的区别是什么
    报错解决NoSuchMethod。。。
  • 原文地址:https://www.cnblogs.com/what-lee/p/8722934.html
Copyright © 2011-2022 走看看