win32汇编环境,网络编程入门之十四

win32汇编环境,网络编程入门之十四_第1张图片

;win32汇编环境,网络编程入门之十四
;在这一教程里,学习一下,如何得到网页的标题
;这里需要理解一下html语言, 标签对里面的内容即为网页的标题
;其原理是把返回的字符串,按字节进行检查,发现上面的标签对时,把里面的内容提取出来.
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386 
.model flat,stdcall 
option casemap:none 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include    windows.inc 
include    user32.inc 
include    kernel32.inc 
include    wininet.inc    ;需要添加的wininet头文件

includelib user32.lib 
includelib kernel32.lib 
includelib wininet.lib    ;需要添加的wininet库文件

; 自定义函数声明
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD   ;对话框窗口函数

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MAINDIALOG    equ 1
ICO_MAIN    equ 1000    ;图标

ID_BUTTON01    equ 41
ID_EDIT01    equ 11
ID_EDIT02    equ 12
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data 

szMsg          db "提示",0
szErr          db "错误",0

szEnter        db 13,10,0                              ;回车换行符

szAgent        db "Microsoft Internet Explorer",0      ;骗网站说自已是IE浏览器
szHostName     db "www.kepai2023.cn",0                 ;要访问的主机域名
szUrlPath      db "/A/A01.html",0                      ;要访问的页面
szVerb         db "GET",0                              ;GET方法访问
szAccept       db "Accept: text/html",0                ;只接受text或html文件返回
               
.data? 
hInstance HINSTANCE          ? 
hEdithwnd01     HWND         ?
hEdithwnd02     HWND         ?

hInternet       dd           ?
hHttpSession    dd           ?
hHttpRequest    dd           ?

.const 

  
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code 
start: 
         invoke GetModuleHandle, NULL 
         mov    hInstance,eax 
         invoke DialogBoxParam, hInstance, MAINDIALOG,NULL, addr DlgProc, NULL 
         invoke ExitProcess,eax 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;处理接收到的字符串,网页标题提取出来
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_HandleData    proc    _lpData,_dwSize

                LOCAL   hSign    ;用来当记号,当发现标题标签对出现时,即 时,                 LOCAL   szBuffer[256]:byte
                LOCAL   szSaveBuffer[256]:byte
                LOCAL   @stCR:CHARRANGE
                
                mov    esi,_lpData
        mov hSign,0

        invoke    RtlZeroMemory,addr szBuffer,sizeof szBuffer
        invoke    RtlZeroMemory,addr szSaveBuffer,sizeof szSaveBuffer
        ;invoke  SendMessage,hEdithwnd02,WM_SETTEXT,0,0               ;清空编辑框
        mov ebx,0
        mov edx,0
        ;循环检查字符串,当发现有3个连续的字符,即         .while TRUE
            .break .if ebx == _dwSize
            .if byte ptr [esi+ebx] == "<" && byte ptr [esi+ebx+1] == "t" && byte ptr [esi+ebx+2] == "i"
                  mov hSign,1    
            .endif
            .if byte ptr [esi+ebx] == "<" && byte ptr [esi+ebx+1] == "/" && byte ptr [esi+ebx+2] == "t"
                  mov hSign,2
                  mov byte ptr [szBuffer+edx-7],0     ;-7 的原因是后面复制的时候,把传入进来的字符串的后7个字符复制进来了,这个时候结束复制,则需要把多余的7个字节内容去掉
            .endif
            .if hSign == 1
                mov al,byte ptr [esi+ebx+7]       ;+7 的原因是在 这7个字符之后开始复制内容                                  <br>                 mov byte ptr [szBuffer+edx],al<br>                 inc edx<br>             .endif    <br>             .if hSign == 2<br>                 ;invoke GetWindowTextLength,hEdithwnd01            <br>                             ;mov @stCR.cpMin,eax<br>                     ;mov @stCR.cpMax,eax<br>                 invoke MultiByteToWideChar,65001,0,addr szBuffer,256,addr szSaveBuffer,256       ;把uft-8编码的网页字符串转换为UNICODE编码输出<br>                 ;invoke SendMessageW,hEdithwnd02,EM_EXSETSEL,0,addr @stCR<br>                             ;invoke SendMessageW,hEdithwnd02,EM_REPLACESEL,FALSE,addr szSaveBuffer</p> <p>                            ;invoke SendMessage,hEdithwnd02,EM_REPLACESEL,FALSE,addr szEnter                 ;加上回车换行符<br>                             invoke SendMessageW,hEdithwnd02,WM_SETTEXT,0,addr szSaveBuffer<br>                             ;invoke MessageBox,NULL,addr szBuffer,addr szMsg,MB_OK<br>                 mov hSign,0<br>                 mov edx,0    <br>             .endif<br>             inc ebx<br>         .endw<br>         ret</p> <p>_HandleData    endp<br> ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br> _WorkThread    proc    _lParam<br>         LOCAL  @dwBytesReaded<br>         LOCAL  @szBuffer[256]:byte<br>         LOCAL  @szRecBuffer[1024]:byte<br>         LOCAL  @szSaveBuffer[1024]:byte<br>         LOCAL  @szShowEdit02[256]:byte<br>         LOCAL  @stCR:CHARRANGE<br>         <br>         LOCAL  @szContentLength[128]:byte<br>         LOCAL  @szStatusCode[128]:byte<br>         LOCAL  @Totallength<br>         <br>         invoke InternetOpen,addr szAgent,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0                                  ;初始化应用程序的 WinINet 函数的使用<br>         mov hInternet,eax</p> <p>        invoke InternetConnect,hInternet,addr szHostName,80,NULL,NULL,INTERNET_SERVICE_HTTP,0,0                 ;为给定站点打开文件传输协议(FTP)或 HTTP 会话,80是http的端口<br>         mov hHttpSession,eax<br>         .if eax == NULL<br>                invoke MessageBox,NULL,addr szErr,addr szMsg,MB_OK            <br>         .endif</p> <p>        invoke HttpOpenRequest,hHttpSession,addr szVerb,addr szUrlPath,NULL,addr szAccept,0,0,0                  ;创建 HTTP 请求句柄<br>         mov hHttpRequest,eax<br>         <br>         invoke HttpSendRequest,hHttpRequest,NULL,0,NULL,0                                                        ;将指定的请求发送到 HTTP 服务器,可以附加数据,后面再说,先实现基本效果先<br>         ;mov @Totallength,128                                                                                     ;注意这里要先赋值为缓冲区的字节大小,不能使用sizeof前面缓冲区的大小,因为它还要保存其它的值<br>         ;invoke HttpQueryInfo,hHttpRequest,HTTP_QUERY_STATUS_CODE,addr @szContentLength,addr @Totallength,NULL    ;HttpQueryInfo 函数需要在HttpSendRequest函数调用成功之后使用,HTTP_QUERY_STATUS_CODE值为测试HTTP连接的返回状态码</p> <p>        ;invoke wsprintf,addr @szShowEdit02,addr szFrm,addr @szContentLength<br>         ;invoke SendMessage,hEdithwnd02,WM_SETTEXT,0,addr @szShowEdit02<br>         <br>     invoke SendMessage,hEdithwnd01,WM_SETTEXT,0,0<br>     .while TRUE  ;通过循环反复读取,直到读到0字节为止<br>             invoke RtlZeroMemory,addr @szRecBuffer,sizeof @szRecBuffer<br>             invoke RtlZeroMemory,addr @szSaveBuffer,sizeof @szSaveBuffer<br>             mov @dwBytesReaded,0<br>             invoke InternetReadFile,hHttpRequest,addr @szRecBuffer,1024,addr @dwBytesReaded                  ;从打开的句柄读取数据,<br>         .break .if @dwBytesReaded == 0<br>         invoke _HandleData,addr @szRecBuffer,1024                                                        ;调用得到网页标题内容的函数<br>         invoke MultiByteToWideChar,65001,0,addr @szRecBuffer,1024,addr @szSaveBuffer,1024                ;将UTF8编码数据转为UNICODE编码<br>         invoke GetWindowTextLength,hEdithwnd01                                                           ;从后面添加内容,防止覆盖上去<br>                 mov @stCR.cpMin,eax<br>         mov @stCR.cpMax,eax<br>         invoke SendMessageW,hEdithwnd01,EM_EXSETSEL,0,addr @stCR<br>                 invoke SendMessageW,hEdithwnd01,EM_REPLACESEL,FALSE,addr @szSaveBuffer            <br>     .endw</p> <p>    ret</p> <p>_WorkThread endp<br> ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br> DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM <br>         LOCAL    @stWsa:WSADATA        <br>         <br>         .if     uMsg == WM_INITDIALOG <br>                 invoke    LoadIcon,hInstance,ICO_MAIN           <br>             invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,eax<br>                 <br>                 invoke GetDlgItem,hWnd,ID_EDIT01<br>                 mov hEdithwnd01,eax<br>                 invoke GetDlgItem,hWnd,ID_EDIT02<br>                 mov hEdithwnd02,eax<br>                 <br>         .elseif    uMsg ==    WM_COMMAND<br>             mov    ebx,wParam<br>                 .if    bx ==    ID_BUTTON01<br>                         invoke    CreateThread,NULL,0,offset _WorkThread,0,NULL,0          ;启动连接线程,用线程的原因是不让网络等待卡住主进程                         <br>             .endif        <br>         .elseif uMsg == WM_CLOSE   <br>                 invoke InternetCloseHandle,hHttpRequest                                          ;反向清除各类HINTERNET 句柄,即先生成的后清除,后生成的先清除<br>                 invoke InternetCloseHandle,hHttpSession                                                         <br>                 invoke InternetCloseHandle,hInternet<br>         invoke EndDialog,hWnd,NULL<br>         .else <br>                 mov eax,FALSE <br>                 ret <br>         .endif <br>                 mov eax,TRUE <br>         ret <br> DlgProc endp </p> <p>end start </p> <p>;下面为rc文件内容<br> #include "resource.h"                   //提示缺少该文件,可以在资源里下载<br> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br> #define       MAINDIALOG      1<br> #define       ICO_MAIN        1000    //图标<br> #define    ID_BUTTON01     41</p> <p>#define    ID_EDIT01       11         //编辑框标识符<br> #define    ID_EDIT02       12<br> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br> ICO_MAIN    ICON        "Main.ico"<br> //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br> //定义对话框<br> MAINDIALOG DIALOG 10, 10, 180, 250 <br> STYLE  DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX | <br> WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK <br> CAPTION "对话框程序模版" <br> FONT 11, "方正姚体"<br> BEGIN <br>      PUSHBUTTON      "访问网页", ID_BUTTON01,  120,20,50,12<br>      CONTROL "显示搜索结果",ID_EDIT01,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL|WS_VSCROLL,10, 50, 160, 190,WS_EX_CLIENTEDGE  //设置成多行编辑框,按回车时加回车符<br>      CONTROL "显示网页标题",ID_EDIT02,"Edit",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL|WS_VSCROLL,10, 10, 100, 30,WS_EX_CLIENTEDGE<br> END </p> <p><br>  </p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1907330525694062592"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(win32汇编网络编程入门教程,汇编)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1950233199242178560.htm" title="x86-64汇编语言训练程序与实战" target="_blank">x86-64汇编语言训练程序与实战</a> <span class="text-muted">十除以十等于一</span> <div>本文还有配套的精品资源,点击获取简介:汇编语言是一种低级语言,与机器代码紧密相关,特别适用于编写系统级代码及性能要求高的应用。nasm编译器是针对x86和x86-64架构的汇编语言编译器,支持多种语法风格和指令集。项目Euler提供数学和计算机科学问题,鼓励编程技巧应用,前100个问题的答案可共享。x86-64架构扩展了寄存器数量并引入新指令,提升了数据处理效率。学习汇编语言能够深入理解计算机底层</div> </li> <li><a href="/article/1950232316408295424.htm" title="9、汇编语言编程入门:从环境搭建到简单程序实现" target="_blank">9、汇编语言编程入门:从环境搭建到简单程序实现</a> <span class="text-muted">神经网络酱</span> <a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80/1.htm">汇编语言</a><a class="tag" taget="_blank" href="/search/MEPIS/1.htm">MEPIS</a><a class="tag" taget="_blank" href="/search/GNU%E5%B7%A5%E5%85%B7%E9%93%BE/1.htm">GNU工具链</a> <div>汇编语言编程入门:从环境搭建到简单程序实现1.数据存储介质问题解决在处理数据存储时,若要使用MEPIS系统,需确保有其可访问的存储介质。目前,MEPIS无法向采用NTFS格式(常用于Windows2000和XP工作站)的硬盘写入数据。不过,若硬盘采用FAT32格式,MEPIS就能进行写入操作。此外,MEPIS还能将文件写入软盘和大多数USB闪存驱动器。若工作站连接到局域网,还可通过FTP协议或挂载</div> </li> <li><a href="/article/1950227022097739776.htm" title="第28章 汇编语言--- 异常处理" target="_blank">第28章 汇编语言--- 异常处理</a> <span class="text-muted">hummhumm</span> <a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96/1.htm">汇编</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">程序设计</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E7%BA%A7%E8%AF%AD%E8%A8%80/1.htm">高级语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86/1.htm">异常处理</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80/1.htm">汇编语言</a> <div>在汇编语言中,异常处理是一个重要的概念,它涉及到处理器如何响应和处理程序运行时发生的非正常情况。异常可以是硬件错误(例如除零错误、非法指令)或者软件触发的中断(例如系统调用)。当发生异常时,处理器会暂停当前正在执行的程序,并转移到一个预先定义好的位置来处理这个异常。为了详细阐述第28章关于汇编语言中的异常处理,我们可以考虑一个简化的例子,展示异常处理的基本结构。请注意,实际的代码将取决于具体的处理</div> </li> <li><a href="/article/1950222345163567104.htm" title="深入理解汇编语言子程序设计与系统调用" target="_blank">深入理解汇编语言子程序设计与系统调用</a> <span class="text-muted">网安spinage</span> <a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80/1.htm">汇编语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96/1.htm">汇编</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>本文将全面解析汇编语言中子程序设计的核心技术以及系统调用的实现方法,涵盖参数传递的多种方式、堆栈管理、API调用等关键知识点,并提供实际案例演示。一、子程序设计:参数传递的艺术1.寄存器传参:高效简洁.386.modelflat,stdcalloptioncasemap:none.dataxdd5;定义变量ydd6sumdd?.code;函数定义:addxy1addxy1procpushebpmo</div> </li> <li><a href="/article/1950198270882017280.htm" title="《UNIX网络编程卷1:套接字联网API》第8章:基本UDP套接字编程深度解析" target="_blank">《UNIX网络编程卷1:套接字联网API》第8章:基本UDP套接字编程深度解析</a> <span class="text-muted"></span> <div>《UNIX网络编程卷1:套接字联网API》第8章:基本UDP套接字编程深度解析(8000字图文实战)一、UDP协议核心特性与编程模型1.1UDP协议设计哲学UDP(UserDatagramProtocol)是面向无连接的传输层协议(图1),其核心特征包括:无连接通信:无需三次握手,直接发送数据报尽最大努力交付:不保证可靠性、不维护连接状态报文边界保留:接收方读取的数据与发送方写入完全一致低开销高效</div> </li> <li><a href="/article/1950190199627640832.htm" title="selenium 特殊场景处理" target="_blank">selenium 特殊场景处理</a> <span class="text-muted"></span> <div>文章目录前言一、windows的弹窗二、内嵌网页frame三、页签切换四、截图五、弹窗六、JS执行总结前言selenium处理web操作师,有很多特殊的情况需要处理,例如弹窗、内嵌网页,页签切换,js执行等,下面介绍一些可能会遇到的特殊场景一、windows的弹窗importwin32com.client'''创建了一个WScript.ShellCOM(ComponentObjectModel)对</div> </li> <li><a href="/article/1950108839089074176.htm" title="Windows下Oracle安装图解" target="_blank">Windows下Oracle安装图解</a> <span class="text-muted">叫我老村长</span> <div>Windows下Oracle安装图解----oracle-win-64-11g详细安装步骤一、Oracle下载官方下地址http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htmlwin32位操作系统下载地址:http://download.oracle.com/otn/nt/oracle11g</div> </li> <li><a href="/article/1949935259281846272.htm" title="PyQt事件处理机制深度指南:超越信号与槽的底层掌控" target="_blank">PyQt事件处理机制深度指南:超越信号与槽的底层掌控</a> <span class="text-muted">钢铁男儿</span> <a class="tag" taget="_blank" href="/search/PyQt5%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91%E4%B8%8E%E5%AE%9E%E6%88%98/1.htm">PyQt5快速开发与实战</a><a class="tag" taget="_blank" href="/search/pyqt/1.htm">pyqt</a> <div>——5大核心策略+实战案例,解锁GUI交互的底层密码事件与信号槽的本质差异维度事件处理机制信号与槽机制抽象层级操作系统消息的原始封装对事件的高级封装应用场景控件行为定制/底层交互常规业务逻辑绑定执行顺序先于信号槽触发在事件处理完成后触发性能影响直接操作效率高存在元对象系统开销典型用例自定义按钮点击行为按钮点击触发业务函数核心认知:信号槽是PyQt的“快捷指令”,事件处理则是“底层汇编”——当需要突</div> </li> <li><a href="/article/1949834002269532160.htm" title="【C语言网络编程基础】TCP并发网络编程:一请求一线程模型" target="_blank">【C语言网络编程基础】TCP并发网络编程:一请求一线程模型</a> <span class="text-muted">(Charon)</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>在实际开发中,一个TCP服务器往往要同时为多个客户端提供服务。最简单直观的方式,就是采用“一请求一线程”模型——每当有客户端连接进来,服务器就创建一个新线程专门负责这个客户端的收发任务。本文将介绍如何使用C语言+TCP+pthread多线程实现一个并发TCP服务器。一、TCP服务器的典型通信流程创建socket绑定IP和端口(bind)开始监听连接请求(listen)接收连接(accept)接收与</div> </li> <li><a href="/article/1949757981633605632.htm" title="C++语言的网络编程" target="_blank">C++语言的网络编程</a> <span class="text-muted">东方苾梦</span> <a class="tag" taget="_blank" href="/search/%E5%8C%85%E7%BD%97%E4%B8%87%E8%B1%A1/1.htm">包罗万象</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>C++网络编程入门指南引言在当今信息技术飞速发展的时代,网络编程已经成为一个不可或缺的技能。无论是开发网络应用、游戏,还是进行数据处理,掌握网络编程的基本概念和技术,都将大大提高一个程序员的能力。本文将介绍C++语言在网络编程中的应用,包括基础概念、常用库、编程实践等内容,希望能帮助读者更好地理解和掌握C++网络编程。第一章:网络编程基础知识1.1网络模型在讨论网络编程之前,我们必须理解现代网络通</div> </li> <li><a href="/article/1949756719366205440.htm" title="Qt 网络编程进阶:网络安全与加密" target="_blank">Qt 网络编程进阶:网络安全与加密</a> <span class="text-muted">编程与实战</span> <a class="tag" taget="_blank" href="/search/Qt%E4%B8%80%E7%AB%99%E5%BC%8F%E5%AD%A6%E4%B9%A0/1.htm">Qt一站式学习</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>在当今数字化时代,网络安全已成为软件开发中不可忽视的关键环节。Qt作为一款强大的跨平台应用开发框架,提供了全面的网络安全与加密功能,帮助开发者构建安全可靠的网络应用。本文将深入探讨Qt网络编程中的安全与加密技术,包括SSL/TLS通信、数据加密、证书管理、安全认证等方面的核心知识与实践经验。一、SSL/TLS基础配置1.启用HTTPS通信#include#include#include#inclu</div> </li> <li><a href="/article/1949711201546072064.htm" title="selenium 反爬虫识别特征处理" target="_blank">selenium 反爬虫识别特征处理</a> <span class="text-muted"></span> <div>因为业务中发现网站对selenium特征识别为爬虫了,因此在搜索引擎中搜索进行处理方式一#实例化一个浏览器对象options=webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches',['enable-automation'])ifsys.platform=="win32":browser=webdrive</div> </li> <li><a href="/article/1949698633460936704.htm" title="群买买品牌特卖,群买买怎么成为店主?有新手入门教程吗?" target="_blank">群买买品牌特卖,群买买怎么成为店主?有新手入门教程吗?</a> <span class="text-muted">高省APP珊珊</span> <div>一个叫群买买的小程序突然引爆微信朋友圈,引起各个项目团队的一阵骚动。各大平台关于群买买的相关名字瞬间被抢注,各个项目群里聊的都是群买买小程序。这背后是一股什么力量在推动?背后又是什么资本在推动?关于群买买的背后真相,大家好,我是【高省】最大团队创始人珊珊,至于我为何从群买买平台转到高省APP,当然是高省佣金更高,模式更好。咱们高省是一个可省钱佣金高,能赚钱有收益的平台,百度有几百万篇报道,也期待你</div> </li> <li><a href="/article/1949662653320327168.htm" title="【优化系列】汇编优化技术(六):ARM架构64位(AARCH64)汇编优化及demo" target="_blank">【优化系列】汇编优化技术(六):ARM架构64位(AARCH64)汇编优化及demo</a> <span class="text-muted">飞翔的鲲</span> <a class="tag" taget="_blank" href="/search/%E3%80%90%E6%B1%87%E7%BC%96%E4%BC%98%E5%8C%96%E6%8A%80%E6%9C%AF100%E4%BE%8B%E3%80%91/1.htm">【汇编优化技术100例】</a><a class="tag" taget="_blank" href="/search/arm/1.htm">arm</a><a class="tag" taget="_blank" href="/search/aarch64/1.htm">aarch64</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96%E4%BC%98%E5%8C%96/1.htm">汇编优化</a><a class="tag" taget="_blank" href="/search/demo/1.htm">demo</a><a class="tag" taget="_blank" href="/search/neon/1.htm">neon</a> <div>DATE:2021.8.15文章目录1、arm架构64位优化基础知识2、ARMv8/AArch64neon指令格式3、ARM相关编译参数4、查看状态标记位NZCV的方法5、A64指令集特有的指令及其用法6、资料文档查阅7、AArch64asmdemo8、优化经验总结(满满的干货)1、arm架构64位优化基础知识 【arm】arm架构64位入门基础:架构分析、寄存器、调用规则、指令集以及参考手册 该</div> </li> <li><a href="/article/1949625340502536192.htm" title="golang学习线路图" target="_blank">golang学习线路图</a> <span class="text-muted">gopher.guo</span> <a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/go/1.htm">go</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/go%E8%AF%AD%E8%A8%80/1.htm">go语言</a> <div>学习Go(Golang)开发,应该从基础语法开始,逐步深入到并发编程、网络编程、Web开发、微服务架构、项目部署与调试等方向。以下是一个系统性的学习路线和内容详解,适合从零到进阶的开发者参考:一、Go语言基础Go语言的安装与配置Go的安装包下载与环境变量配置(GOROOT,GOPATH,gomod)使用GoModules管理依赖基础语法变量与常量的定义(var,const,类型推断:=)数据类型:</div> </li> <li><a href="/article/1949600121394098176.htm" title="【C语言网络编程】HTTP 客户端请求(基于 Socket 的完整实现)" target="_blank">【C语言网络编程】HTTP 客户端请求(基于 Socket 的完整实现)</a> <span class="text-muted">(Charon)</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>一、前言在浏览器中,我们输入网址点击回车,就可以打开网页。那么这个过程中到底发生了什么?其实背后就是浏览器作为HTTP客户端,向服务器发起了一个HTTP请求。本篇博客将手把手用纯C语言实现一个简洁版的“浏览器行为”:输入域名和资源路径使用Socket建立TCP连接构造并发送HTTPGET请求接收服务器响应内容(HTML页面)打印到终端核心代码不足百行,帮助你彻底搞懂HTTP请求的底层流程。二、程序</div> </li> <li><a href="/article/1949596466737639424.htm" title="iOS安全和逆向系列教程 第19篇:ARM64汇编语言基础与逆向分析" target="_blank">iOS安全和逆向系列教程 第19篇:ARM64汇编语言基础与逆向分析</a> <span class="text-muted">自学不成才</span> <a class="tag" taget="_blank" href="/search/iOS%E5%AE%89%E5%85%A8%E5%92%8C%E9%80%86%E5%90%91%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B/1.htm">iOS安全和逆向系列教程</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/cocoa/1.htm">cocoa</a> <div>引言在成功掌握iOS应用脱壳技术后,我们获得了可以进行静态分析的二进制文件。然而,要真正理解iOS应用的底层逻辑,我们必须深入到汇编语言层面。ARM64(也称为AArch64)是苹果在iPhone5s及以后设备中使用的指令集架构。本篇文章将深入探讨ARM64汇编语言的基础知识,并结合iOS逆向分析的实际需求,帮助读者建立从高级语言到机器码的完整理解体系。ARM64架构概述ARM64的发展历程ARM</div> </li> <li><a href="/article/1949593818231795712.htm" title="【C语言网络编程基础】TCP 服务器详解" target="_blank">【C语言网络编程基础】TCP 服务器详解</a> <span class="text-muted">(Charon)</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>在网络通信中,TCP(TransmissionControlProtocol,传输控制协议)是一种可靠、面向连接的协议。一个TCP服务器正是基于这种协议,为客户端提供稳定的网络服务。本文将详细介绍TCP服务器的基本原理和工作流程。一、什么是TCP服务器?TCP服务器是运行在某个端口上的网络程序,用于接收客户端的连接请求,并与之进行数据通信。它主要负责:等待并接收客户端的连接请求与客户端建立可靠的双</div> </li> <li><a href="/article/1949523087548542976.htm" title="C# 正则表达式" target="_blank">C# 正则表达式</a> <span class="text-muted">lly202406</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C#正则表达式引言正则表达式(RegularExpression)是一种用于处理字符串的强大工具,它可以快速地匹配、查找、替换字符串中的特定模式。在C#中,正则表达式被广泛应用于字符串处理、数据验证、网络编程等领域。本文将详细介绍C#正则表达式的基本概念、语法、应用场景以及一些常用技巧。正则表达式的基本概念正则表达式由字符集、量词、修饰符等组成。以下是一些基本概念:字符集:表示一组字符,可以是单个</div> </li> <li><a href="/article/1949514058155749376.htm" title="常用中药材_五味子_自渡子" target="_blank">常用中药材_五味子_自渡子</a> <span class="text-muted">自渡子</span> <div>《五味子》(资料来源——中国药典、中药大辞典、中华本草、全国中草药汇编)别名——北五味子、五梅子、山花椒、玄及、会及、辽五味子。药科——为木兰科植物五味子的干燥成熟果实。产地——分布于黑龙江、吉林、辽宁、河北、山西、内蒙古、陕西,主产于黑龙江、吉林、辽宁。药类——敛肺涩肠。药性——温。药味——酸、甘。入经——心、肺、肾。功效——宁心,补肾,益气,生津,收敛,固涩。主治——自汗盗汗,津伤口渴,内热消</div> </li> <li><a href="/article/1949413266472103936.htm" title="Flutter开发实战之网络请求与数据处理" target="_blank">Flutter开发实战之网络请求与数据处理</a> <span class="text-muted">老Lin头</span> <a class="tag" taget="_blank" href="/search/Flutter%E5%BC%80%E5%8F%91/1.htm">Flutter开发</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>第6章:网络请求与数据处理“数据是应用的血液,网络是连接世界的桥梁。”在移动应用开发中,与服务器进行数据交互是必不可少的功能。无论是获取用户信息、提交表单数据,还是上传图片、下载文件,都离不开网络请求。本章将带你深入掌握Flutter中的网络编程技巧。6.1网络请求基础概念6.1.1什么是HTTP请求?想象一下,你走进一家餐厅点餐的过程:你告诉服务员想要什么(发送请求)服务员把你的需求传达给厨房(</div> </li> <li><a href="/article/1949369892947947520.htm" title="CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!" target="_blank">CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!</a> <span class="text-muted">网络安全宇哥</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a> <div>一、CTF简介CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCONCT</div> </li> <li><a href="/article/1949351231541538816.htm" title="Java网络编程性能调优:NIO与异步IO实战" target="_blank">Java网络编程性能调优:NIO与异步IO实战</a> <span class="text-muted">AI开发架构师</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/nio/1.htm">nio</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>Java网络编程性能调优:NIO与异步IO实战关键词:Java网络编程、性能调优、NIO、异步IO、实战摘要:本文深入探讨了Java网络编程中的性能调优问题,聚焦于NIO(非阻塞IO)和异步IO技术。通过生动的比喻和详细的代码示例,我们将逐步揭开NIO和异步IO的神秘面纱,讲解它们的核心概念、工作原理以及具体操作步骤。同时,结合实际项目案例,展示如何运用这些技术进行网络编程的性能优化,最后还会展望</div> </li> <li><a href="/article/1949331181094891520.htm" title="Qt 网络编程进阶:WebSocket 通信" target="_blank">Qt 网络编程进阶:WebSocket 通信</a> <span class="text-muted"></span> <div>在现代应用开发中,WebSocket已成为实现实时通信的标准技术。Qt通过QWebSocket和QWebSocketServer类提供了对WebSocket协议的原生支持,使开发者能够轻松构建高性能、可靠的实时通信应用。本文将深入探讨Qt网络编程中WebSocket通信的进阶实现,包括高级客户端、服务器开发、安全配置、消息处理和性能优化等方面。一、WebSocket基础通信1.WebSocket客</div> </li> <li><a href="/article/1949276964720275456.htm" title="【Python深入浅出㉛】Python3多线程:解锁高效并发编程" target="_blank">【Python深入浅出㉛】Python3多线程:解锁高效并发编程</a> <span class="text-muted">奔跑吧邓邓子</span> <a class="tag" taget="_blank" href="/search/Python%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BA/1.htm">Python深入浅出</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div>目录一、引言二、Python3多线程基础(一)线程与进程的区别(二)多线程的优势(三)Python3中的线程模块三、Python3多线程的使用方法(一)函数式创建线程(二)类式创建线程(三)线程的基本方法四、线程同步与锁机制(一)为什么需要线程同步(二)锁的类型与使用(三)死锁问题及解决方法五、多线程应用场景(一)网络编程(二)文件处理(三)数据分析六、多线程常见问题与解决方案(一)GIL(全局解</div> </li> <li><a href="/article/1949254646736416768.htm" title="Qt 网络编程进阶:HTTP 客户端实现" target="_blank">Qt 网络编程进阶:HTTP 客户端实现</a> <span class="text-muted">编程与实战</span> <a class="tag" taget="_blank" href="/search/Qt%E4%B8%80%E7%AB%99%E5%BC%8F%E5%AD%A6%E4%B9%A0/1.htm">Qt一站式学习</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>在Qt应用程序中,实现高性能、可靠的HTTP客户端是常见需求。Qt提供了丰富的网络模块,包括QNetworkAccessManager、QNetworkRequest和QNetworkReply等类,用于简化HTTP通信。本文将深入探讨Qt网络编程中HTTP客户端的进阶实现,包括异步请求、并发控制、请求重试、数据缓存等高级技术。一、基础HTTP请求实现1.同步HTTP请求#include#incl</div> </li> <li><a href="/article/1949239077077315584.htm" title="Excel快速入门教程8-数据透视表" target="_blank">Excel快速入门教程8-数据透视表</a> <span class="text-muted">python测试开发</span> <div>有时您需要分析大量数据,成易于阅读和理解的报告。数据透视图允许我们分析此类数据并生成满足业务要求的报告。在本教程中,我们将介绍以下主题;什么是数据透视图?创建数据透视图二维数据透视图什么是数据透视图?数据透视图是大数据集的摘要,通常包括总数,平均值,最小值,最大值等。假设您有不同地区的销售数据,使用数据透视图可以按地区汇总数据并查找每个区域的平均销售额,每个区域的最大和最小销售额等。数据透视图允许</div> </li> <li><a href="/article/1949216812184956928.htm" title="爬虫逆向:一篇文章掌握 Hopper 的详细使用(macOS 和 Linux 反汇编程序:对可执行文件进行静态分析)" target="_blank">爬虫逆向:一篇文章掌握 Hopper 的详细使用(macOS 和 Linux 反汇编程序:对可执行文件进行静态分析)</a> <span class="text-muted">数据知道</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E5%92%8C%E9%80%86%E5%90%91%E6%95%99%E7%A8%8B/1.htm">爬虫和逆向教程</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E9%80%86%E5%90%91/1.htm">逆向</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86/1.htm">数据采集</a> <div>文章目录一、Hopper概述1.1Hopper介绍和用途1.2界面介绍1.3相关概念说明1.4安装二、基本使用2.1打开二进制文件2.2汇编模式2.3CFG模式2.4伪代码2.5十六进制模式三、浏览文件3.1段和节3.2符号、标签和字符串3.3导航堆栈3.4导航栏3.5使用检查器四、修改文件4.1十六进制编辑器4.2汇编程序更多内容请见:爬虫和逆向教程-专栏介绍和目录文章目录一、Hopper概述1</div> </li> <li><a href="/article/1949174067676377088.htm" title="电子信息工程专业学生的就业方向" target="_blank">电子信息工程专业学生的就业方向</a> <span class="text-muted">祝老师</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E4%B9%8B%E5%A4%96/1.htm">学习之外</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%AD%90/1.htm">电子</a><a class="tag" taget="_blank" href="/search/%E5%B0%B1%E4%B8%9A/1.htm">就业</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA/1.htm">职场</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8/1.htm">应用</a> <div>如果从工程师和研究生的专业方向来看,电子信息专业的方向大概有1)数字电子线路方向。从事单片机(8位的8051系列、32位的ARM系列等等)、FPGA(CPLD)、数字逻辑电路、微机接口(串口、并口、USB、PCI)的开发,更高的要求会写驱动程序、会写底层应用程序。单片机主要用C语言和汇编语言开发,复杂的要涉及到实时嵌入式操作系统(ucLinux,VxWorks,uC-OS,WindowsCE等等)</div> </li> <li><a href="/article/1949063093371858944.htm" title="唯快不破:TCP/IP协议疑难杂症全景解析" target="_blank">唯快不破:TCP/IP协议疑难杂症全景解析</a> <span class="text-muted"></span> <div>说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,学习网络更好的资</div> </li> <li><a href="/article/112.htm" title="HQL之投影查询" target="_blank">HQL之投影查询</a> <span class="text-muted">归来朝歌</span> <a class="tag" taget="_blank" href="/search/HQL/1.htm">HQL</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E8%AF%A2%E8%AF%AD%E5%8F%A5/1.htm">查询语句</a><a class="tag" taget="_blank" href="/search/%E6%8A%95%E5%BD%B1%E6%9F%A5%E8%AF%A2/1.htm">投影查询</a> <div>        在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示? 针对上面的场景,如果需要将一个对象查出来: HQL语句写“from 对象”即可 Session session = HibernateUtil.openSession(); </div> </li> <li><a href="/article/239.htm" title="Spring整合redis" target="_blank">Spring整合redis</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>pom.xml <dependencies> <!-- Spring Data - Redis Library --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redi</div> </li> <li><a href="/article/366.htm" title="org.hibernate.NonUniqueResultException: query did not return a unique result: 2" target="_blank">org.hibernate.NonUniqueResultException: query did not return a unique result: 2</a> <span class="text-muted">0624chenhong</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>参考:http://blog.csdn.net/qingfeilee/article/details/7052736 org.hibernate.NonUniqueResultException: query did not return a unique result: 2         在项目中出现了org.hiber</div> </li> <li><a href="/article/493.htm" title="android动画效果" target="_blank">android动画效果</a> <span class="text-muted">不懂事的小屁孩</span> <a class="tag" taget="_blank" href="/search/android%E5%8A%A8%E7%94%BB/1.htm">android动画</a> <div>前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。 Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 </div> </li> <li><a href="/article/620.htm" title="js delete 删除机理以及它的内存泄露问题的解决方案" target="_blank">js delete 删除机理以及它的内存泄露问题的解决方案</a> <span class="text-muted">换个号韩国红果果</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露  (其实还未删除) 举例: var person={name:{firstname:'bob'}} var p=person.name delete person.name p.firstname -->'bob' // 依然可以访问p.firstname,存在内存泄露</div> </li> <li><a href="/article/747.htm" title="Oracle将零干预分析加入网络即服务计划" target="_blank">Oracle将零干预分析加入网络即服务计划</a> <span class="text-muted">蓝儿唯美</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计</div> </li> <li><a href="/article/874.htm" title="spring学习——springmvc(二)" target="_blank">spring学习——springmvc(二)</a> <span class="text-muted">a-john</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>Spring MVC提供了非常方便的文件上传功能。 1,配置Spring支持文件上传: DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul</div> </li> <li><a href="/article/1001.htm" title="POJ-2828-Buy Tickets" target="_blank">POJ-2828-Buy Tickets</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/ACM_POJ/1.htm">ACM_POJ</a> <div>POJ-2828-Buy Tickets http://poj.org/problem?id=2828 线段树,逆序插入 #include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct</div> </li> <li><a href="/article/1128.htm" title="Java Ant build.xml详解" target="_blank">Java Ant build.xml详解</a> <span class="text-muted">asia007</span> <a class="tag" taget="_blank" href="/search/build.xml/1.htm">build.xml</a> <div>1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台   --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有</div> </li> <li><a href="/article/1255.htm" title="android按钮监听器的四种技术" target="_blank">android按钮监听器的四种技术</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/xml%E9%85%8D%E7%BD%AE/1.htm">xml配置</a><a class="tag" taget="_blank" href="/search/%E7%9B%91%E5%90%AC%E5%99%A8/1.htm">监听器</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3/1.htm">实现接口</a> <div>android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;    1,activity中使用内部类实现接口 ,创建内部类实例  使用add方法  与java类似   创建监听器的实例 myLis lis = new myLis();   使用add方法给按钮添加监听器  </div> </li> <li><a href="/article/1382.htm" title="软件架构师不等同于资深程序员" target="_blank">软件架构师不等同于资深程序员</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E5%B8%88/1.htm">架构师</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a> <div>        本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。         如今很多的公司</div> </li> <li><a href="/article/1509.htm" title="TeamForge Wiki Syntax & CollabNet User Information Center" target="_blank">TeamForge Wiki Syntax & CollabNet User Information Center</a> <span class="text-muted">sunjing</span> <a class="tag" taget="_blank" href="/search/TeamForge/1.htm">TeamForge</a><a class="tag" taget="_blank" href="/search/How+do/1.htm">How do</a><a class="tag" taget="_blank" href="/search/Attachement/1.htm">Attachement</a><a class="tag" taget="_blank" href="/search/Anchor/1.htm">Anchor</a><a class="tag" taget="_blank" href="/search/Wiki+Syntax/1.htm">Wiki Syntax</a> <div>the CollabNet user information center http://help.collab.net/   How do I create a new Wiki page? A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and</div> </li> <li><a href="/article/1636.htm" title="【Redis四】Redis数据类型" target="_blank">【Redis四】Redis数据类型</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>概述 Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。 Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string</div> </li> <li><a href="/article/1763.htm" title="SSH2整合-附源码" target="_blank">SSH2整合-附源码</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a> <div>今天用eclipse终于整合出了struts2+hibernate+spring框架。 我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。     补充1:项目中部分jar包不是最新版的,可能导</div> </li> <li><a href="/article/1890.htm" title="[转]开源项目代码的学习方法" target="_blank">[转]开源项目代码的学习方法</a> <span class="text-muted">braveCS</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95/1.htm">学习方法</a> <div>转自: http://blog.sina.com.cn/s/blog_693458530100lk5m.html http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html   1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d</div> </li> <li><a href="/article/2017.htm" title="编程之美-子数组的最大和(二维)" target="_blank">编程之美-子数组的最大和(二维)</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a> <div>package beautyOfCoding; import java.util.Arrays; import java.util.Random; public class MaxSubArraySum2 { /** * 编程之美 子数组之和的最大值(二维) */ private static final int ROW = 5; private stat</div> </li> <li><a href="/article/2144.htm" title="读书笔记-3" target="_blank">读书笔记-3</a> <span class="text-muted">chengxuyuancsdn</span> <a class="tag" taget="_blank" href="/search/jquery%E7%AC%94%E8%AE%B0/1.htm">jquery笔记</a><a class="tag" taget="_blank" href="/search/resultMap%E9%85%8D%E7%BD%AE/1.htm">resultMap配置</a><a class="tag" taget="_blank" href="/search/ibatis%E4%B8%80%E5%AF%B9%E5%A4%9A%E9%85%8D%E7%BD%AE/1.htm">ibatis一对多配置</a> <div>1、resultMap配置 2、ibatis一对多配置 3、jquery笔记 1、resultMap配置 当<select resultMap="topic_data"> <resultMap id="topic_data">必须一一对应。 (1)<resultMap class="tblTopic&q</div> </li> <li><a href="/article/2271.htm" title="[物理与天文]物理学新进展" target="_blank">[物理与天文]物理学新进展</a> <span class="text-muted">comsci</span> <div>       如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境       怎么办呢?  </div> </li> <li><a href="/article/2398.htm" title="Oracle 11g新特性:Automatic Diagnostic Repository" target="_blank">Oracle 11g新特性:Automatic Diagnostic Repository</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/ADR/1.htm">ADR</a> <div>Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。 FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。 在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。 这两份log文</div> </li> <li><a href="/article/2525.htm" title="简单排序:选择排序" target="_blank">简单排序:选择排序</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F/1.htm">选择排序</a> <div> public void selectSort(int[] array){ int select; for(int i=0;i<array.length;i++){ select = i; for(int k=i+1;k<array.leng</div> </li> <li><a href="/article/2652.htm" title="C语言学习六指针的经典程序,互换两个数字" target="_blank">C语言学习六指针的经典程序,互换两个数字</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a> <div>示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了 # include <stdio.h> void swap_1(int, int); void swap_2(int *, int *); void swap_3(int *, int *); int main(void) { int a = 3; int b = </div> </li> <li><a href="/article/2779.htm" title="php 5.4中php-fpm 的重启、终止操作命令" target="_blank">php 5.4中php-fpm 的重启、终止操作命令</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>php 5.4中php-fpm 的重启、终止操作命令: 查看php运行目录命令:which php/usr/bin/php 查看php-fpm进程数:ps aux | grep -c php-fpm 查看运行内存/usr/bin/php  -i|grep mem 重启php-fpm/etc/init.d/php-fpm restart 在phpinfo()输出内容可以看到php</div> </li> <li><a href="/article/2906.htm" title="线程同步工具类" target="_blank">线程同步工具类</a> <span class="text-muted">shuizhaosi888</span> <a class="tag" taget="_blank" href="/search/%E5%90%8C%E6%AD%A5%E5%B7%A5%E5%85%B7%E7%B1%BB/1.htm">同步工具类</a> <div>同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)   闭锁(CountDownLatch) public class RunMain { public long timeTasks(int nThreads, final Runnable task) throws InterruptedException { fin</div> </li> <li><a href="/article/3033.htm" title="bleeding edge是什么意思" target="_blank">bleeding edge是什么意思</a> <span class="text-muted">haojinghua</span> <a class="tag" taget="_blank" href="/search/DI/1.htm">DI</a> <div>不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。  我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。   In computer science, bleeding edge is a term that </div> </li> <li><a href="/article/3160.htm" title="c中实现utf8和gbk的互转" target="_blank">c中实现utf8和gbk的互转</a> <span class="text-muted">jimmee</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/iconv/1.htm">iconv</a><a class="tag" taget="_blank" href="/search/utf8%26gbk%E7%BC%96%E7%A0%81/1.htm">utf8&gbk编码</a> <div>#include <iconv.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <string.h> #include <sys/stat.h> int code_c</div> </li> <li><a href="/article/3287.htm" title="大型分布式网站架构设计与实践" target="_blank">大型分布式网站架构设计与实践</a> <span class="text-muted">lilin530</span> <a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a> <div>1.大型网站软件系统的特点? a.高并发,大流量。 b.高可用。 c.海量数据。 d.用户分布广泛,网络情况复杂。 e.安全环境恶劣。 f.需求快速变更,发布频繁。 g.渐进式发展。 2.大型网站架构演化发展历程? a.初始阶段的网站架构。 应用程序,数据库,文件等所有的资源都在一台服务器上。 b.应用服务器和数据服务器分离。 c.使用缓存改善网站性能。 d.使用应用</div> </li> <li><a href="/article/3414.htm" title="在代码中获取Android theme中的attr属性值" target="_blank">在代码中获取Android theme中的attr属性值</a> <span class="text-muted">OliveExcel</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/theme/1.htm">theme</a> <div>Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.   在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则: int defaultColor = 0xFF000000; int[] attrsArray = { andorid.r.</div> </li> <li><a href="/article/3541.htm" title="基于Zookeeper的分布式共享锁" target="_blank">基于Zookeeper的分布式共享锁</a> <span class="text-muted">roadrunners</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E5%85%B1%E4%BA%AB%E9%94%81/1.htm">共享锁</a> <div>首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。   共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。   官</div> </li> <li><a href="/article/3668.htm" title="两个容易被忽略的MySQL知识" target="_blank">两个容易被忽略的MySQL知识</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>1、varchar(5)可以存储多少个汉字,多少个字母数字?   相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。   这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0</div> </li> <li><a href="/article/3795.htm" title="zoj 3827 Information Entropy(水题)" target="_blank">zoj 3827 Information Entropy(水题)</a> <span class="text-muted">阿尔萨斯</span> <a class="tag" taget="_blank" href="/search/format/1.htm">format</a> <div> 题目链接:zoj 3827 Information Entropy 题目大意:三种底,计算和。 解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。 #include <cstdio> #include <cstring> #include <cmath&</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>