`
wanchong998
  • 浏览: 235615 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Socket模拟Http协议

    博客分类:
  • J2me
阅读更多
接收数据方法:

  /**/ ///   <summary>
    ///  接收数据的方法
    ///   </summary>
    ///   <param name="socket"> Socket连接 </param>
    ///   <param name="size"> 要接收的数据长度 </param>
    ///   <returns> 返回收到的字节数组 </returns>
    public   static   byte [] ReceiveData(Socket socket, int  size)
      {
     int  total = 0 ;      // 收到的总的字节数
     int  dataleft = size;     // 剩余的字节数
     byte [] data = new   byte [size];   // 接收数据的数组
     int  rece = 0 ;       // 收到的字节数
     // 循环接收数据
     while (total < size)
       {
       rece = socket.Receive(data,total,dataleft,SocketFlags.None);
        // 如果收到的字节数为0,那么说明连接断开,返回空的字节数组
        if (rece == 0 )
          {
            break ;
       }
       total += rece;      // 收到的字节数长度++
       dataleft -= rece;      // 剩余的字节数--

    }
     return  data;       // 返回
   }



接收数据方法重载:

   public   static   byte [] ReceiveData(Socket socket)
      {
   
   
    StringBuilder header = new  StringBuilder();
     string  headertext = "" ;
     while ( true )
       {
      byte [] data = new   byte [ 1 ];
      // 接收一个字节
      int  rece = socket.Receive(data, 1 ,SocketFlags.None);
    
    
      // 转换为char
      char  c = ( char )data[ 0 ];
    
     header.Append(c);
      // 检查是否到了包头末尾,如果到了包头末尾,那么停止
      // 读取
      if (header.ToString().IndexOf( " \r\n\r\n " ) > 0 )
        {
       string  content = " CONTENT-LENGTH: " ;
       int  start = header.ToString().ToUpper().IndexOf(content);
      headertext = header.ToString().Substring(start + content.Length);
       int  end = headertext.IndexOf( " \r\n " );
      headertext = headertext.Substring( 0 ,end);  // 包体长度
       break ;
     }
    }
     //
     byte [] ds = ReceiveData(socket,Convert.ToInt16(headertext));
     return  ds;
   }


分享到:
评论

相关推荐

    socket模拟HTTP协议头

    总之,通过Socket模拟HTTP协议头是一种学习网络编程、理解HTTP工作原理的有效方法。这种方式可以帮助开发者更好地控制网络请求,实现自定义功能,同时也可以在没有现成库支持的情况下进行低级网络通信。在实际项目中...

    使用Socket 模拟 http协议访问客户端

    一些HTTP服务在IE浏览器使用XHR (Ajax)都可以访问...但是在Chrome 无法获得返回数据,返回报错信息都是: “Could not get any response”。 采用golang 开发使用Socket 模拟 http协议访问客户端,可以解决这个问题。

    C#基于socket模拟http请求的方法

    在C#编程语言中,使用Socket类可以实现底层的网络通信,包括模拟HTTP请求。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。Socket则提供了低...

    sock模拟http协议,接收有问题

    1. **HTTP协议理解**:要通过Socket模拟HTTP协议,首先需要对HTTP协议有深入理解,包括请求方法(GET、POST等)、状态码、头部信息以及请求/响应的结构。 2. **Socket编程基础**:Socket编程涉及TCP/IP协议栈,包括...

    Android下socket模拟http server

    这个过程涉及到Android系统的网络权限管理、Socket编程以及HTTP协议的理解。 首先,Android应用在处理网络相关的操作时,需要在`AndroidManifest.xml`文件中声明相应的权限,例如`INTERNET`权限和可能的`WRITE_...

    JAVA SOCKET模拟HTTP请求,文件上传!

    采用JAVA的socket实现http协议,模拟浏览器访问服务端。

    socket http/https 模拟登录 请求页面等

    为了确保数据传输的安全性,HTTPS(安全套接层超文本传输协议)被引入,它是HTTP协议与SSL/TLS(安全套接层/传输层安全)协议的结合,通过加密传输数据,防止中间人攻击。 **模拟登录**: 在Web开发中,模拟登录...

    VC++ Socket发送Http协议Post数据包

    【VC++ Socket发送Http协议Post数据包】是一个关于利用C++编程语言,通过Socket接口实现HTTP POST请求的示例项目。这个项目的核心是模拟HTTP客户端,向服务器发送带有特定数据的POST请求,以实现QQ登录的功能。在此...

    socket模拟http

    "socket模拟http"是指使用Socket API来实现HTTP协议的功能。在本项目中,开发者使用了Visual C++ 6.0(VC6.0)作为开发工具,这是一款经典的C++集成开发环境。 HTTP(超文本传输协议)是互联网上应用最广泛的一种...

    Socket TCP UDP 客户端 服务器模拟工具

    在实际应用中,Socket编程涉及的概念和技术还包括套接字的创建、绑定、监听、接受、连接、读写操作,错误处理,多线程/多进程并发处理,以及更高级的特性如TCP的长连接、HTTP/HTTPS协议等。熟练掌握Socket编程,将为...

    模拟http服务器(socket使用)

    本文将基于提供的标题“模拟http服务器(socket使用)”和描述,深入探讨如何使用Socket来构建一个简单的HTTP服务器。我们将涵盖以下几个关键点: 1. **HTTP协议基础**: HTTP(超文本传输协议)是互联网上应用最...

    PHP版SOCKET模拟提交POST消息(源码)

    1. 创建SOCKET连接:使用`socket_create()`函数创建一个SOCKET,指定协议类型(通常是AF_INET,表示IPv4)和套接字类型(通常是SOCK_STREAM,表示TCP)。 2. 连接服务器:使用`socket_connect()`函数与服务器的IP...

    java Socket实现简单模拟HTTP服务器

    Java Socket 实现简单模拟 HTTP 服务器 Java Socket 是 Java 编程语言中的一种网络编程技术,用于实现网络通信。通过使用 Java Socket,可以模拟 HTTP 服务器,来处理客户端的请求和响应。在本文中,我们将介绍如何...

    socket 实现的静态网页http服务器

    3. **HTTP协议**:HTTP服务器响应客户端(通常是浏览器)的HTTP请求,返回HTML文档或者其他静态资源(如图片、CSS、JavaScript文件等)。HTTP请求由方法(GET、POST等)、URL、协议版本、头部和可能的主体组成,而...

    HTTP.rar_HTTP_HTTP协议分析_http socket

    通过研究这些文件,你不仅可以深入了解HTTP协议的工作原理,还能掌握如何使用C++和Delphi进行socket编程,实现自己的HTTP客户端或服务器。这是一个很好的学习资源,对于想深入理解和应用网络协议的开发者来说非常有...

    tcp_http.rar_http socket_http下载_socket 下载_socket下载http_tcp http

    当我们谈论"socket下载http"时,通常是指使用Socket编程来实现HTTP客户端,模拟浏览器发送HTTP请求到服务器,然后接收服务器返回的文件数据。HTTP请求通常包括方法(如GET或POST)、URL、协议版本、头部和可能的主体...

    TCP调试助手 模拟Socket服务器和客服端

    TCP调试助手是一款强大的工具,主要用于帮助开发者在设计和测试网络应用程序时模拟Socket服务器和客户端的行为。这个工具的核心功能是提供一个友好的界面,使得开发者无需编写额外的代码就能直观地理解TCP连接的工作...

    SSD8 EX2 Socket模拟客户端服务端

    在TCP/IP协议栈中,Socket提供了进程间通信的能力,无论是同一台机器还是不同机器上的进程,都可以通过Socket进行通信。 二、Socket类型 在Socket编程中,主要有两种类型的Socket:流式Socket(TCP)和数据报Socket...

    socket测试工具 TCP协议 刷卡机

    Socket测试工具是网络编程中用于调试和检测TCP协议通信的重要辅助软件。在IT行业中,特别是在开发涉及网络通信的应用时,理解和使用这类工具至关重要。本文将深入探讨Socket测试工具的使用,TCP协议的基础知识,以及...

    SOCKET转HTTP

    本文将深入探讨如何利用Socket技术实现点对点(P2P)的文件传输,并进一步探索如何将Socket通信转换为HTTP协议下的通信方式。 #### 二、Socket基础 在深入了解Socket转HTTP之前,我们首先回顾一下Socket的基础概念...

Global site tag (gtag.js) - Google Analytics