zoukankan      html  css  js  c++  java
  • Soket 连接发送与接收

    ///url:地址     data:数据
     public static string GetContentFromUrl(string url, string data)
        {                               //寻址方案。ip4地址          // 套接字类型
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            
                IPEndPoint ip = new IPEndPoint(IPAddress.Parse(url), 端口);
                socket.Connect(ip);//连接
                char[] cmgs = data.ToCharArray(); //字符串转字符数组
                byte[] message = new byte[1024];
                message = Encoding.UTF8.GetBytes(data);
                socket.Send(message);   //发送数据
           
                byte[] bytes = new byte[1024];
                socket.Receive(bytes);   //接收数据
                string messages = Encoding.Default.GetString(bytes, 0, bytes.Length);
    
                return messages;   //返回数据
           
                socket.Close();
          
    
    
        }
    

      

     /// <summary>
        /// 连接服务 接收大数据量
        /// </summary>
        /// <param name="url"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static string GetContentFromUrl(string url, string data)
        {
            Socket sokClient = null;
            string Message = "";
            try
            {
               sokClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress address = IPAddress.Parse(url);
                IPEndPoint point = new IPEndPoint(address, 8108);
                sokClient.Blocking = true;   //没有数据接受时挂起等待, 知道有数据时
                sokClient.Connect(point);
    
                char[] cmgs = data.ToCharArray(); //字符串转字符数组
                byte[] message = new byte[1024];
                message = Encoding.Default.GetBytes(data);
                sokClient.Send(message);
    

    byte[] totalBytes = null; int receiveLength = 0; do { byte[] buffer = new byte[1024]; receiveLength = sokClient.Receive(buffer, buffer.Length,0); //接受数据长度 if (totalBytes == null) //第一次接收数据 { totalBytes = new byte[receiveLength]; //声明byte
    //从指定数组的 位置 复制到另一数组的指定位置 Buffer.BlockCopy(buffer,
    0, totalBytes, 0, receiveLength); } else { byte[] appendBytes = new byte[receiveLength]; Buffer.BlockCopy(buffer, 0, appendBytes, 0, receiveLength); byte[] newTotalBytes = new byte[receiveLength + totalBytes.Length]; Buffer.BlockCopy(totalBytes, 0, newTotalBytes, 0, totalBytes.Length); Buffer.BlockCopy(appendBytes, 0, newTotalBytes, totalBytes.Length, appendBytes.Length); totalBytes = newTotalBytes; } } while (receiveLength > 0 && receiveLength == 1024); Message = Encoding.Default.GetString(totalBytes); return Message; } catch (Exception ex) { return ex.Message; } finally { sokClient.Close(); } }
  • 相关阅读:
    MQTT TLS 加密传输
    python多进程并发redis
    各种消息队列的特点
    mqtt异步publish方法
    Numpy API Analysis
    Karma install steps for unit test of Angular JS app
    reinstall bower command
    Simulate getter in JavaScript by valueOf and toString method
    How to: Raise and Consume Events
    获取对象的类型信息 (JavaScript)
  • 原文地址:https://www.cnblogs.com/Evaniko/p/3779703.html
Copyright © 2011-2022 走看看