当前位置: 首页 > 编程日记 > 正文

vb inet 一些方法

引用:http://apps.hi.baidu.com/share/detail/14791249

使用 Internet Transfer 控件 


Internet Transfer 控件实现了两种广泛使用的 Internet 协议: 超文本传送协议(HyperText Transfer Protocol)(HTTP) 和文件传送协议(File Transfer Protocol) (FTP)。使用 Internet Transfer 控件可以通过 OpenURL 或 Execute 方法连接到任何使用这两个协议的站点并检索文件。 

可能的用途 
在应用程序中添加 FTP 浏览器。 


创建自动从公共 FTP 站点下载文件的应用程序。 


分析 World Wide Web 站点中的图形引用,并只下载图形。 


提供以自定义格式显示从 Web 页获得的动态数据。 
基本操作 
Internet Transfer 控件的功能依赖于将要使用的协议。由于所支持的两种协议工作起来不尽相同,所能够进行的操作就依赖于正在使用的协议。例如,GetHeader 方法只能用于 HTTP(HTML 文档)协议。 

然而,有些过程对两个协议是通用的。最基本的,如果要使用任何一个协议,则必须: 

将 AccessType 属性设置为合法的代理服务器。 


用合法的 URL 调用 OpenURL 方法。 


用合法的 URL 和协议支持的命令调用 Execute 方法。 


用 GetChunk 方法从缓冲区获取数据。 
设置 AccessType 属性:使用代理服务器 
为了与 Internet 建立任何形式的连接,必须确定计算机如何连接到 Internet 上。如果在 intranet 上,可能需要提供代理服务器才能连接到 Internet 上。 

简单地说,代理服务器是计算机和 Internet 之间的媒介。intranet 上所有需要连接到 Internet 上的计算机,都必须通过代理服务器。代理行使 intranet 和 Internet 之间的防火墙功能,能够阻止非法的最终用户和外部请求,也就保护了 intranet 不受破坏。 

要查找计算机中的代理设置值,请按照以下步骤执行: 

注意 下面的步骤只能用于 Windows 95 和 Windows NT(R) 4.0 系统。 

在计算机的“任务栏”中,单击“启动”。 


在“设置”项中,单击“控制面板”。 


双击“Internet”图标。 


在“Internet 属性”对话框中,单击“连接”。 


在“代理服务器”中,确认选中了“通过代理服务器连接”复选框。 


如果选中了,则单击“设置”。在该对话框中可以找到能够用于多种协议的代理服务器的名称。如果没有定义代理服务器,请与系统管理员联系,以获得可用的代理服务器。 
如果希望使用对话框中未列出的代理服务器,可将 AccessType 属性设置为 icNamedProxy (2)。然后将 Proxy 属性设置为代理服务器的名称,如下面的代码所示: 

Inet1.Proxy = "myProxyName" 
Inet1.AccessType = icNamedProxy 

另一方面,如果希望使用缺省代理服务器(由计算机的注册表决定),则可以忽略 Proxy 属性,而只需将 AccessType 设置为 icUseDefault (0)。 

AccessType 的设置值在下表中列出: 

常数 值 描述 
icUseDefault 0 (缺省)用作缺省。控件使用注册表中的缺省设置访问 Internet。 
icDirect 1 直接连接 Internet。该控件可直接连接到 Internet。 
icNamedProxy 2 命名的代理服务器。指示该控件使用 Proxy 属性确定的代理服务器。 


调用 OpenURL 方法 
设置完 AccessType 属性后,最基本的操作就是用合法的 URL 调用 OpenURL 方法。使用 OpenURL 方法时,操作所得到的结果将依赖于目标 URL。例如下面的 URL 将返回在
www.microsoft.com 中找到的 HTML 文档: 

'名为“Text1”的 TextBox 控件保存了 
'该方法的结果。Internet 传输 
'控件的名称是“Inet1”。 
Text1.Text = Inet1.OpenURL("
http://www.microsoft.com") 

作为结果,TextBox 控件保存了 HTML 源码,它看上去应和下图显示的相似: 



在这种情况下,缺省操作返回的是 URL 定位的 HTML 文档。然而,如果 URL 被改为指向文本文件,则将获得实际的文件。例如,下面的代码: 

Text1.Text = Inet1. _ 
OpenURL("ftp://ftp.microsoft.com/disclaimer.txt") 

将获得文件的实际文本,如下所示: 



提示 在使用 OpenURL 或 Execute 方法时,不需要设置 Protocol 属性。Internet Transfer 控件会自动按 URL 的协议部分确定的协议来设置。 

最后,可以用包含附加数据的 URL 调用 OpenURL 方法。例如,很多 Web 站点提供了搜索数据库的能力。要搜索数据库,则需要在发送的 URL 中包含搜索条件。例如下面的代码用条件“find=Maui”调用名为“search.exe”的搜索引擎。 

Dim strURL As String 
strURL = _ 
"
http://www.howzit.com/cgi-bin/search.e xe?find=maui 
Text1.Text = Inet1.OpenURL(strURL) 

如果搜索引擎找到了符合条件的内容,将合成一个 HTML 文档并携带适当的信息返回。 

用 OpenURL 方法保存到文件 
如果需要将通过 OpenURL 方法获取的数据保存到文件,可以使用 Open、Put 和 Close 语句,如下面的代码所示。该示例先将获得的二进制文件传入 Byte 数组,然后将该数据保存到磁盘中: 

Dim strURL As String 
Dim bData() As Byte '数据变量 
Dim intFile As Integer '可用文件变量 
strURL = _ 
"ftp://ftp.microsoft.com/Softlib/Softlib.e xe" 
intFile = FreeFile() '将 intFile 设置为未使用的文件 
' OpenURL 方法的结果首先传入 Byte 数组, 
'然后将 Byte 数组保存到磁盘。 
bData() = Inet1.OpenURL(strURL, icByteArray) 
Open "C:\Temp\Softlib.e xe" For Binary Access Write _ 
As #intFile 
Put #intFile, , bData() 
Close #intFile 

可用类似的过程将文本文件写入磁盘中,不同的只是不再需要 Byte 数组了,数据可以直接保存到文件中: 

Dim strURL As String 'URL 字符串 
Dim intFile As Integer '可用文件变量 
IntFile = FreeFile() 
strURL = "
http://www.microsoft.com
Open "c:\temp\MSsource.txt" For Output _ 
As #IntFile 
Write #IntFile, Inet1.OpenURL(strURL) 
Close #IntFile 

同步和异步传输 
OpenURL 方法以同步方式传输数据。在这里,同步指的是传输操作未完成之前,不能执行其它过程。这样数据传输就必须在执行其它代码之前完成。 

而 Execute 方法以异步方式传输数据。在调用 Execute 方法时,传输操作与其它过程无关。这样,在调用 Execute 方法后,在后台接收数据的同时,即可同时执行其它代码。 

对 Internet Transfer 控件的使用者来说这意味着什么?简单地说,用 OpenURL 方法能够直接得到可保存到磁盘的数据流(如上所述),或者直接在 TextBox 控件中阅览(如果数据是文本格式的)。从另一方面说,如果用 Execute 方法获取数据,则必须用 StateChanged 事件监视该控件的连接状态。当达到适当的状态时,调用 GetChunk 方法从控件的缓冲区获取数据。下面更详细地讨论这一操作。 

在 FPT 协议中使用 Execute 方法 
Execute 方法具有四个参数:url、operation、data 和 requestHeaders。FTP 操作只用到了 operation 参数和 url 参数,其中后者是可选的。例如,要从远程计算机中得到一个文件,可用下面的代码: 

Inet1.Execute "FTP://ftp.microsoft.com", _ 
"GET disclaimer.txt C:\Temp\Disclaimer.txt" 

如果正在用 FTP 从匿名 FTP 服务器中获取文件,就应熟悉在服务器目录树中漫游的特定命令,以及将其中文件获取到本地的硬盘中的命令。例如,要用 FPT 协议改变目录,应使用带有希望改变到的目录路径的“CD”命令。 

对绝大多数通用操作,如将文件传入服务器,以及从服务器获取文件,Internet 传输控件在 Execute 方法中使用了(与 FTP)相同或相近的命令。例如,下面的代码将“CD”命令作为 Execute 方法的参数以改变路径: 

'txtURL 文本框包含了要打开的路径。 
'txtRemotePath 文本框包含了要改变到的路径。 
Inet1.Execute txtURL.Text, "CD " & txtRemotePath.Text 

注意 在 Execute 方法中使用 FTP 命令时,没有用到 data 和 requestHeaders 参数。所有的操作和它们的参数都在 operation 参数中作为字符串进行传递;参数之间用空格进行分隔。在下面的描述中,不要把“file1”和“file2”项与 data 和 requestHeaders 参数搞混。 

FTP 操作的语法是: 

operationName file1 file2 

例如,要获取文件,在下面的代码中包含了操作的名称 (“获取”),以及该操作所需的两个文件名:

'得到名为“Disclaimer.txt”的文件,并将其复制到 
' C:\Temp\Disclaimer.txt。 
Inet1.Execute, _ 
"GET Disclaimer.txt C:\Temp\Disclaimer.txt" 

下表列出了该控件支持的 FTP 命令: 

操作 描述 示例 
CD file1 改变目录。改变到由 file1 指定的目录中。 Execute , "CD docs\mydocs" 

CDUP 改变到父目录。功能与“CD ..”相同。 Execute , "CDUP" 

DELETE file1 删除由 file1 指定的文件。 Execute , "DELETE discard.txt" 

DIR [file1] 在由 file1 指定的目录中查找。如果没有指定 file1 目录,则查找当前工作目录。使用 GetChunk 方法返回数据。 Execute , "DIR /mydocs" 

GET file1 file2 获取由 file1 指定的远程文件,并创建由 file2 指定的新的本地文件。 Execute , _ 
"GET getme.txt C:\gotme.txt" 


MKDIR file1 创建由 file1 指定的目录。是否能够成功地执行,取决于用户在远程主机上的权限。 Execute , "MKDIR /myDir" 

PUT file1 file2 将由 file1 指定的本地文件,复制到由 file2 指定的远程主机文件中。 Execute , _ 
"PUT C:\putme.txt /putme.txt" 


PWD 打印工作目录。返回当前目录的名称。用 GetChunk 方法返回数据。 Execute , "PWD" 

QUIT 结束当前连接。 Execute , "QUIT" 

RECV file1 file2 与 GET 相同。 Execute , _ 
"RECV getme.txt C:\gotme.txt" 


RENAME file1 file2 文件重命名。是否能够成功地执行,取决于用户在远程主机上的权限。 Execute , 
"RENAME old.txt new.txt" 


RMDIR file1 删除目录。是否能够成功地执行,取决于用户在远程主机上的权限。 Execute , "RMDIR oldDir" 

SEND file1 将文件复制到 FTP 站点。(与 PUT 相同) Execute , _ 
"SEND C:\putme.txt /putme.txt" 


SIZE file1 返回由 file1 指定文件的大小。 Execute "SIZE /largefile.txt" 



重点 如果代理服务器是 CERN 代理服务器,就不允许使用直接的 FTP 连接(使用 Execute 方法)。在这种情况下,要获得文件,则需使用带 Open、Put 和 Close 语句的 OpenURL 方法,就象前面“用 OpenURL 方法保存到文件”提到的那样。还可以用 OpenURL 方法得到目录列表,即将目标目录作为 URL,并调用该方法。 

在 HTTP 协议上使用 Execute 方法 
HTTP 协议允许客户机用 GET、HEAD、POST 和 PUT 命令向服务器请求数据。下表中列出了这些操作: 

操作 描述 示例 
GET 获取 url 中命名的文件。 Execute "
http://www.microsoft.com" & _ 
"/default.htm", "GET" 


HEAD 只获取 URL 属性中命名的文件的文件标头。 Execute , "HEAD" 

POST 提供附加数据,以支持向远程主机的请求。 Execute , "POST", strFormData 

PUT 替换指定的 URL 中的数据。 Execute , "PUT", "replace.htm" 



通用网关接口和 Execute 方法 
很多 World Wide Web 站点提供了搜索数据库的能力。它是通过 HTTP 协议用通用网关接口 (CGI) 发送查询的能力完成的。 

在这里不再讨论 CGI 了。然而,如果对 CGI 比较了解,就可用 Execute 方法构造一个应用程序模拟 World Wide Web 站点的行为。例如,下面的代码给出了典型的 CGI 查询字符串: 

http://www.yippee.com/cgi-bin/find.e xe?find=Hangzhou 

如下所示,用 Execute 方法也可以发送同样的查询: 

Dim strURL As String, strFormData As String 
strURL = "//
www.yippee.com/cgi-bin/find.e xe" 
strFormData = "find=Hangzhou" 
Inet1.E xecute strURL, "POST", strFormData 

如果希望得到从服务器发回的结果(如上面的示例所示),就必须使用 GetChunk 方法以获取作为结果的 HTML 文档。 

在 State 事件中使用 GetChunk 方法 
在从远程计算机下载数据时,将建立异步连接。例如,在 Execute 方法中使用“获取”操作,将使服务器获取请求的文件。当获取了整个文件之后,State 参数将返回 icResponseCompleted (12)。在这时候,就可以用 GetChunk 方法从缓冲区中获取数据了。下面的示例中给出了这种情况: 

Private Sub Inet1_StateChanged(ByVal State As Integer) 
Dim vtData As Variant '数据变量。 
Select Case State 
'...没有给出其它情况。 
Case icResponseCompleted '12 
'打开文件用于写入。 
Open txtOperation For Binary Access _ 
Write As #intFile 

'得到第一个大块。注意:指定 Byte 数组 
' (icByteArray) 以获取二进制文件。 
vtData = Inet1.GetChunk(1024, icString) 

Do While LenB(vtData) > 0 
Put #intFile, , vtData 
'得到下一大块。 
vtData = Inet1.GetChunk(1024, icString) 
Loop 
Put #intFile, , vtData 
Close #intFile 
End Select 
End Sub 

登录到 FTP 服务器 
FTP 服务器有两种:公用的和私用的。公用服务器,顾名思义,是对所有人开放的。而私用服务器,除了该服务器的真正用户,其他人不能登录。在这两种情况下,FTP 协议都要求提供用户名和密码。这两个参数用来验明用户,并允许(或禁止)进一步的操作。 

要登录到公用服务器,通常的做法是以“匿名”登录 (UserName = "anonymous"),然后发送用户的电子邮件名称作为密码。然而使用 Internet 传输控件这一过程还能够进一步简化。按照缺省规定,如果没有提供 UserName 和 Password 属性值,该控件发送“匿名”作为 UserName,用户的电子邮件名称作为 Password。 

如果要登录到私用服务器,只需适当地设置 UserName、Password 和 URL 属性,并调用 Execute 方法,如下面的示例所示: 

With Inet1 
.URL = "ftp://ftp.someFTPSite.com" 
.UserName = "John Smith" 
.Password = "mAuI&9$6" 
.Execute ,"DIR" '返回该目录。 
.Execute ,"CLOSE" '关闭连接。 
End With 

在调用 Execute 方法之后,FTP 连接仍旧打开着。这时可以继续使用 Execute 方法完成其它 FTP 操作,比如 CD 和 GET。如果会话已经完成,使用 Execute 方法执行 CLOSE 操作以关闭连接。也可以通过改变 URL 属性,并调用 OpenURL 或 Execute 方法,自动关闭该连接,这样的操作会关闭当前 FTP 连接,并打开新的 URL

对于FTP,你可以使用Execute方法执行FTP命令SIZE获得文件大小。然后在StateChanged事件中可以获得返回的文件大小。 
Private Sub Command1_Click() 
Inet1.Execute "ftp://127.0.0.1", "SIZE 1.gif" 
End Sub 

Private Sub Inet1_StateChanged(ByVal State As Integer) 
'State = 12 时,用 GetChunk 方法检索服务器的响应。 

Dim vtData As Variant ' Data variable. 
Select Case State 
'...没有列举其它情况。 
Case icError '11 
'出现错误时,返回 ResponseCode 和 ResponseInfo。 
vtData = Inet1.ResponseCode & ":" & _ 
Inet1.ResponseInfo 
Case icResponseCompleted ' 12 


Dim strData As String 
Dim bDone As Boolean: bDone = False 

'取得第一个块。 
vtData = Inet1.GetChunk(1024, icString) 
DoEvents 

Do While Not bDone 
strData = strData & vtData 
'取得下一个块。 
vtData = Inet1.GetChunk(1024, icString) 
DoEvents 

If Len(vtData) = 0 Then 
bDone = True 
End If 
Loop 
MsgBox strData 
End Select 

End Sub 

对于HTTP下载,你可以用GetHeader(Content-length)来获得文件大小。但不是所有HTTP下载时都能获得文件长度,特别是通过代理服务器下载文件时。如: 
Private Sub Form_Load() 
Inet1.Execute "http://askpro.yeah.net/" 
End Sub 

Private Sub Inet1_StateChanged(ByVal State As Integer) 
If State = icResponseReceived Then 
MsgBox "File size is " & Inet1.GetHeader("Content-Length") 
End If 
End Sub

==============================================

在VB中实现文件上传 
VisualBasic作为一个集应用程序开发、测试、查错功能于一体的集成式开发环境,越来越受到程序员的青睐。笔者在开发某数据库维护系统的过程中,选择了VB5.0作为开发平台,Unix作为服务器端操作系统,Informix作为服务器数据库。 
问题的出现 
在开发该维护系统的过程中,注意到Informix数据库的字段类型CLOB填入数据时需要函数FILETOCLOB("FILENAME","SERVER"),其中的"FILENAME"需要指出文件路径和文件名称。然而,在维护过程中此文件是在客户端执行的,这样就要求即时将文件传输到服务器端。 
解决办法 
1.FTP传输工具 
我们首先使用FTP传输工具,用VB5.0中SHELL命令调用DOS批处理文件来实现传输的需要。 
Shell调用格式: 
Shell(pathname[,windowstyle]) 
例子:Shell("c:\windows\upload.bat") 
批处理文件upload.bat的内容: 
c:\windows\ftphostname 
username 
password 
sendc:\zrh\upload.txtupload.txt 
bye 
该命令实现了文件"upload.txt"的传输要求。在使用完毕之后,再调用命令把该文件删除。 
例子:Shell("c:\windows\del_up.bat") 
批处理文件del_up.bat的内容: 
c:\windows\ftphostname 
username 
password 
deleupload.txt 
bye 
这样,文件"upload.txt"被删除。 
但是,另一个问题出现了。由于Shell函数的运行机制是与其它程序同步执行,也就是说,当调用Shell函数的子程序还没有执行完毕之前,Shell函数后面的语句已经执行。在大批量添加数据的过程中,就会出现某个记录的文件还没有传到,而下一个插入语句(Insert)已经开始调用。这样,ODBC调用就会出现错误。 
2.INET控件 
InternetTransfer控件提供了Internet上最常使用的两种协议:HTTP和FTP。使用HTTP协议可以连接到WWW服务器上来下载文件;使用FTP协议则可以登录到FTP服务器。一般的FTP命令,例如CD、GET都可以通过Execute方法实现。 
下面是一个设置INET控件属性的例子。 
inet1.URL=ftp://username:password@hostname/document 
inet1.Protocol=2-icFTP 
inet1.RemoteHost=hostname 
inet1.RemotePort=21 
inet1.Username=username 
inet1.Password=password 
执行文件传输: 
Inet1.Execute"ftp://username:password@hostname",_ 
"PUT"&local_filename&"UPLOAD1.TXT" 
right1=Inet1.StillExecuting 
DoWhileright1 
right1=Inet1.StillExecuting 
DoEvents 
Loop 
这样便实现了文件的上载。 
*SINET控件的优点 
INET控件与Shell()函数的不同之处在于INET控件通过调用语句 
right1=Inet1.StillExecuting 
DoWhileright1 
right1=Inet1.StillExecuting 
DoEvents 
Loop来控制语句执行的顺序。在文件传输工作未完成之前,程序不会执行其它语句,自然也就不会出现调用Shell函数所出现的问题。变量right1用来测试inet1的执行状态,如果进程中仍在进行文件传输的工作,则调用过程DoEvents给系统空闲时间来做文件传输工作,这样便成功地执行了文件上载的功能。该文件使用完毕之后将被删除。 
Inet1.Execute"ftp://informix:informix@rd",_ 
"DELETEUPLOAD1.TXT" 
right1=Inet1.StillExecuting 
DoWhileright1 
right1=Inet1.StillExecuting 
DoEvents 
Loop 
将上载的文件删除是为了避免占用服务器端磁盘空间。 
*S利用StateChanged事件提示信息 
服务器在执行inet1.execute的同时也激活了Inet1_StateChanged事件,进程可以根据捕获到的状态进行动作。 
object_StateChanged(ByValStateAsInteger) 
State:整数类型Integer 
下面是状态的说明。 
常数值 描述icNone 
0 未报告状态icHostResolvingHost 
1 控件正在寻找指定主机的IP地址icHostResolved 
2 控件已成功找到指定主机的IP地址icConnecting 
3 控件正在与指定主机进行连接icConnected 
4 控件已成功与指定主机连接icRequesting 
5 控件正在向主机发出请求icRequestSent 
6 控件已成功向主机发出请求icReceivingResponse 
7 控件正在从主机接收反馈信息icResponseReceived 
8 控件已成功从主机接受反馈信息icDisconnecting 
9 控件正在与主机断开icDisconnected 
10 控件已与主机断开icError 
11 在与主机通信的过程中发生了错误icResponseCompleted 
12 请求结束且数据已经接收到 
下面是一个例子。 
PrivateSubInet1_StateChanged(ByValStateAsInteger) 
'RetrieveserverresponseusingtheGetChunk 
'methodwhenState=12.Thisexampleassumesthe 
'dataistext. 
SelectCaseState 
'...Othercasesnotshown. 
CaseicResponseReceived'12 
DimvtDataAsVariant'Datavariable. 
DimstrDataAsString:strData="" 
DimbDoneAsBoolean:bDone=False 
'Getfirstchunk. 
vtData=Inet1.GetChunk(1024,icString) 
DoWhileNotbDone 
strData=Data&vtData 
'Getnextchunk. 
vtData=Inet1.GetChunk(1024,icString) 
IfLen(vtData)=0Then 
bDone=True 
EndIf 
Loop 
txtData.Text=strData 
EndSelect 
EndSub

==========================================
方法2,设置信息: 
Inet1.Protocol = icFTP 
Inet1.RemoteHost = ServerName'服务器地址 
Inet1.RemotePort = 21'FTP端口 
Inet1.UserName = uName'用户名 
Inet1.Password = uPWS'密码 

下载文件: 
Inet1.Execute "", "GET 1.txt d:\1.txt" 
ri = Inet1.StillExecuting 
Do While ri 
ri = Inet1.StillExecuting 
DoEvents 
Loop 
上传文件: 
Inet1.Execute "", "PUT d:\1.txt 1.txt" 
ri = Inet1.StillExecuting 
Do While ri 
ri = Inet1.StillExecuting 
DoEvents 
Loop

相关文章:

blogs第一天

纪念一下转载于:https://www.cnblogs.com/wandezhi/p/5819780.html

技术直播:1小时突击Java工程师面试核心(限免报名)

后疫情时代,连程序员这个多金的职业也遭受到了一定程度的打击。从各大招聘网站和多次面试经历中,相信大家已经意识到,面试官对程序员技能体系和项目经验考核似乎更严苛了。你在面试中常常为什么苦恼呢?简历撰写?数据算…

随笔之如何实现一个线程池

为什么80%的码农都做不了架构师?>>> 一 缘由: 最近因工作问题,需要实现一个简单的线程池,满足一下要求, 可伸缩,即一旦发现线程不够用,则可以动态增加线程。(至于缩减线…

url传递中文的解决方案

作者&#xff1a;xrascal 出处&#xff1a;aspxcn url传递中文的解决方案 1.设置web.config文件。&#xff08;我不喜欢设置成这样&#xff09; <system.web> ...... <globalization requestEncoding"gb2312" responseEncoding"gb2312" cult…

要哭了,模拟器键盘一直不显示

为什么80%的码农都做不了架构师&#xff1f;>>> 今天第一次遇见模拟器键盘不显示&#xff0c;导致应用对键盘的通知监听没任何卵用&#xff0c;搞了很久还是找不到原因&#xff0c;泪崩&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 最后检查到是…

用机器学习还原《隐秘的角落》那些被修改的台词

来源 | 东泽聊技术责编 | Carol前两天&#xff0c;作者一口气看完了电视剧《隐秘的角落》&#xff0c;剧情相当精彩。美中不足的是&#xff0c;剧组为了让片子过审&#xff0c; 导致11集&#xff0c;12集的剪辑顺序被打乱&#xff0c;甚至台词被修改&#xff0c;以至于片中有几…

在ASP.NET下实现数字和字符相混合的验证码

作者&#xff1a;kwklover&#xff08;原作&#xff09; 出处&#xff1a;CSDN 在ASP.NET下实现数字和字符相混合的验证码 经常在论坛里看到有问怎么实现验证码的帖子,其实关于验证码的文章在CSDN,DEV-CLUB等网站上都有很多,但是很多文章只讲诉了如何输出一个随机生成数字…

多节点CDN缓存加速系统wdcdn2.4版本发布(20111213)

多节点CDN缓存加速系统wdcdn2.4版本发布(20111213) Wdcdn是一套基于Linuxapachesquid架构开发的CDN缓存加速系统及管理系统 可帮助大中小站长或大中小企业低成本&#xff0c;快速简单&#xff0c;构建自己的CDN网络及服务器群,提供更好的在线服务,更快速的网络和网站,我们也致力…

Attribute在.net编程中的应用

作者&#xff1a;niwalker 出处&#xff1a;csdn SqlCommandGenerator类的设计 SqlCommandGEnerator类的设计思路就是通过反射得到方法的参数&#xff0c;使用被SqlCommandParameterAttribute标记的参数来装配一个Command实例。 引用的命名空间&#xff1a;//SqlCommandG…

RouterOS连载3:架设PPPoE服务

让ROS提供PPPoE服务&#xff0c;可对客户端提供类似ADSL的认证上网方式。具体设置步骤如下&#xff1a; 一、创建地址池 从Winbox联入ROS&#xff0c;单击“IP”&#xff0d;〉“Pool”,如下图 打开“IP Pool”对话框 单击“”按钮&#xff0c;添加地址池,Name: pppoepool1 …

免费技术直播:唐宇迪带你一节课了解机器学习经典算法

常常有小伙伴在后台反馈&#xff1a;机器学习经典算法有哪些&#xff1f;自学难度大又没有效果&#xff0c;该怎么办&#xff1f;CSDN为了解决这个难题&#xff0c;联合唐宇迪老师为大家带来了一场精彩的直播【一节课掌握机器学习经典算法-线性回归模型】。本次直播将帮大家了解…

初学markdown

分段与标题 分段 正如markdown文档所说的&#xff0c;段落是由若干行组成的&#xff0c;段落之间以一行空行分开。(也就是每一段的前后都要有一个空行) 一个 Markdown段落是由一个或多个连续的文本行组成&#xff0c;它的前后要有一个以上的空行&#xff08;空行的定义是显示上…

C++中关于流的概念

怎么从键盘中读取一个整数并包括错误处理 int a; while (cin.get(ch1)) { if (ch1\n) cout<<"input the right number:"; //第一次输入换行&#xff1b; else if (cin.get(ch2),ch2\n) { ach1-0; …

成为人工智能视觉应用工程师需要多久?我用了45天!

说到计算机科学中最热门的几个方向&#xff0c;毫无疑问会提到计算机视觉&#xff01;不管是最近大火的人脸识别&#xff0c;还是计算机视觉、自动驾驶、VR影像&#xff0c;不管是教育、医疗、还是安防、娱乐&#xff0c;计算机视觉的应用场景开始变得越来越广。在6月23~24日的…

一个请求从 URL 字符串到 HTML 代码的“漫长曲折”之路

作者&#xff1a;Dino Esposito 出处&#xff1a;msdn ASP.NET HTTP 运行时 一个请求从 URL 字符串到 HTML 代码的“漫长曲折”之路 Dino EspositoWintellect 2003年7月10日 摘要&#xff1a;本文详细介绍了 HTTP 运行时的组成部分&#xff0c;以及在处理对 ASP.NET 应用程…

asp.net webapi 序列化为xml 时实体属性增加![CDATA[]]防止特殊字符

有时webapi在序列化xml时&#xff0c;可能需要给某些带有html或特殊字符&#xff08;如 < > & /&#xff09;的字段加上<![CDATA[]]> 已防止影响xml正常数据&#xff0c;如果使用.aspx视图那可直接在前台绑定字段时直接加入<![CDATA[]]>&#xff0c;weba…

C#中读取数据库中Image数据

作者&#xff1a;未知 请与本人联系DataReader 的默认行为是在整个数据行可用时立即以行的形式加载传入数据。但是&#xff0c;对于二进制大对象 (BLOB) 则需要进行不同的处理&#xff0c;因为它们可能包含数十亿字节的数据&#xff0c;而单个行中无法包含如此多的数据。Comman…

创新工场提出中文分词和词性标注模型,性能分别刷新五大数据集| ACL 2020​

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;中文分词和词性标注是中文自然语言处理的两个基本任务。尽管以BERT为代表的预训练模型大行其道&#xff0c;但事实上&#xff0c;中文中基于全词覆盖 &#xff08;whole word masking&#xff09;的预训练模型比直接使…

使用XML在MSSQL把字串分解

今天要在mssql里处理一串Email地址。以分号分开的。以前自己写过一个split函数的。这次想使用xml来处理。mssql 2000和mssql 2005数据库对xml的支持有些不同。至少mssql 2005的功能多些。代码一&#xff1a;这个代码在MSSQL 2005测试成功, 在mssql 2000不通过。最后生成一个表变…

tomcat中server.xml文件详解

原文&#xff1a;http://www.cnblogs.com/starhu/p/5599773.html Tomcat Server的结构图如下&#xff1a;该文件描述了如何启动Tomcat Server <Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources <Service> …

想提前目睹人到中年的发型?试试这款自制秃头生成器

要说最近哪部剧最红&#xff0c;我说是《隐秘的角落》没人有意见吧&#xff1f;看了这部片子&#xff0c;全国观众除了被男主张东升提醒爬山有风险之外&#xff0c;片中的另一个场景也颇让人印象深刻&#xff0c;容易让人产生共鸣&#xff0c;那就是张东升看到自己二十年后的样…

Windows Phone实用开发技巧(32):照片角度处理

在实际项目中&#xff0c;可能需要用户从相册中选择图片然后进行相应的处理。但是不知道大家有没有发现这样一种情况&#xff0c;就是手机里看是竖着的&#xff0c;但是上传到微博或者哪里的时候确实横着的。一种情况是你拿手机竖着拍照得话&#xff0c;照片就是横着的&#xf…

ubuntu 12 JDK 编译

下载openjdk源码 http://jdk7.java.net/source.html 安装Ubuntu上面的依赖包&#xff1a; 1、参考原书 环境变量配置&#xff1a; 1、去www.hzbook.com上面将深入理解java虚拟机&#xff0c;周志明写的那本书的代码download2、ALT_BOOTDIR变量最好引用 jdk1.7.0_04&#xff0c…

“编程能力差,90%是输在这点上!”谷歌AI开发专家:逆袭并没那么难!

Google 人工智能开发者专家彭靖田老师说——超90%的程序员在初学Python 人工智能时&#xff0c;都会遇到下面3个问题&#xff1a;1.想入门人工智能&#xff0c;但不知从何学起&#xff0c;也不知道该选择什么方向...2.Python语法、机器学习/深度学习框架、算法都能看懂&#xf…

文本的DES加密 MD5散列值 DSA的数字签名

作者&#xff1a;未知文本的DES加密为了对称加密的安全&#xff0c;将密码进行封装&#xff0c;先新建一个用于保存密码的类库cl&#xff1a;using System;using System.Text ;namespace cl{ /// <summary> /// Class1 的摘要说明。 /// </summary> public class C…

在SQL Server中调用.NET程序集

使用到这东西完全是个巧合和无奈之举。不小心在数据库中插入了一些HttpUtility.UrlEncodeUnicode之后的数据。数据库里的一些字段成了%uxxxx%uxxxx这样的结构。 搜索了半天T-SQL UrlDecode的函数&#xff0c;发现都不支持上面这种Unicode的。自己对T-SQL又不熟悉&#xff0c;时…

AngularJS2 + ASP.NET MVC项目

环境&#xff1a;VS2015&#xff0c; NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问题。 通过下面的若干配置最终向项目build成功。 转载于:https://www.cnblogs.com/1zhk/p/5831567.html

干货!仅有 100k 参数的高效显著性检测方法

作者 | 南开大学 程明明、依图科技 颜水成责编 | Carol封图 | CSDN 下载自视觉中国显著性目标检测模型通常需要花费大量的计算成本才能对每个像素进行精确的预测&#xff0c;因此这使得其几乎不适用于低功耗的设备。本文旨在通过提高网络计算效率来缓解计算花费与模型性能之间的…

如何将一个彩色图像转换成黑白图像

作者&#xff1a;未知彩色图像转换为黑白图像时需要计算图像中每像素有效的亮度值&#xff0c;通过匹配像素 亮度值可以轻松转换为黑白图像。 计算像素有效的亮度值可以使用下面的公式&#xff1a; Y0.3RED0.59GREEN0.11Blue 然后使用 Color.FromArgb(Y,Y,Y) 来把计算后的值…

修改Activity响应音量控制键修改的音频流

转自&#xff1a;http://rainhomepage.appspot.com/2010/05/hardware-volume-controls-audio-stream-setvolumecontrolstream 当开发多媒体应用或者游戏应用的时候&#xff0c;需要使用音量控制键来设置程序的音量大小。在Android系统中有多中音频流&#xff0c;通过Activity中…