CN1477502A - 一种用于应用层软件的套接字工具 - Google Patents
一种用于应用层软件的套接字工具 Download PDFInfo
- Publication number
- CN1477502A CN1477502A CNA021420416A CN02142041A CN1477502A CN 1477502 A CN1477502 A CN 1477502A CN A021420416 A CNA021420416 A CN A021420416A CN 02142041 A CN02142041 A CN 02142041A CN 1477502 A CN1477502 A CN 1477502A
- Authority
- CN
- China
- Prior art keywords
- program
- socket
- application layer
- instrument
- layer software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种用于应用层软件的套接字工具,该套接字工具是以编写为一程序的方式来实施,并在一电脑内执行,以提供该电脑的应用层软件调用,使该电脑能够通过TCP网络与其它电脑的应用层软件通信,该套接字工具包括:一组用于和TCP网络通信的套接字控制程序,其中该套接字控制程序是利用TCP协议进行通信。此外,本发明套接字工具进一步包括一组用于处理该应用层软件的传输数据的增值程序。
Description
技术领域
本发明涉及一种套接字(socket)工具,特别是一种仅使用TCP协议来作为网络通信规范的套接字工具。
背景技术
传统WinSock(Windows Socket)是由Microsoft、Novell、Sun Microsystem等公司根据UNIX上的Berkeley Socket为基础所制定的一套TCP/IP协议网络规范,利用此规范在Windows操作系统上开发应用程序,便可以和所有TCP网络通信,通常WinSock以动态连接库(.DLL)的方式存在,所以应用程序可以通过WinSock.DLL调用(call),然而传统WinSock在配合此规范在Windows操作系统上开发应用程序仍存在缺点。传统WinSock,例如微软公司所提供的传统WinSock,是使用TCP(Transmission Control Protocol,传输控制协议)和UDP(UserDatagram Protocol,用户数据报协议)等两种网络协议来作为网络通信的规范,当例如一FTP应用层软件借助传统WinSock进行文件下载作业时,经常会发生文件数据丢失的情况,尤其时传输MP3、JPG图像等数据时丢失情况更为严重,这是传统WinSock的错误(bugs)所导致的结果。
发明内容
本发明目的是提供一种仅使用TCP网络协议来作为网络通信规范的套接字工具,以提高网络传输的稳定性。
本发明另一目的是提供一种用于处理应用层软件的传输数据的增值程序,其用以提供安全性、保密性及高速度的网络传输。
为实现本发明的目的,本发明提供一种用于应用层软件的套接字工具,其中该套接字工具是以编写为一程序的方式来实施,并在一电脑内执行,以提供该电脑的应用层软件调用,使该电脑能够通过TCP网络与其它电脑的应用层软件通信,该套接字工具包括:一组用于通信TCP网络的套接字控制(socket control)程序,其中该套接字控制程序是利用TCP协议进行通信。
此外,本发明套接字工具进一步包括一组用于处理该应用层软件的传输数据的增值程序。
为使熟悉该项技术的人士了解本发明的目的、特征及功效,通过下述具体实施例,配合附图对本发明详加说明如下。
附图说明
图1是本发明套接字工具在一具有视窗操作系统的个人电脑执行时的主存储器状态示意图;
图2是本发明套接字工具与传统WinSock的比较示意图;
图3是本发明套接字工具的套接字控制程序在一电子商务中的应用示意图;
图4是本发明套接字工具的增值程序在具有一服务端/客户端的网络环境中的应用示意图。
具体实施方式
图1是本发明套接字工具在一具有视窗操作系统的个人电脑执行时的主存储器状态示意图。使用本发明套接字工具的个人电脑,其主存储器至少包含有一视窗操作系统,例如微软公司的Windows 98视窗操作系统;一应用层软件,例如使用SQL的数据库应用软件:一套接字工具程序,其中该套接字工具程序在具体实施编码(Coding)时,可以是一种DLL程序的型态,由该应用层软件调用。
图2是本发明套接字工具与传统WinSock的比较示意图。本发明套接字工具的套接字控制程序仅使用TCP网络协议作为网络通信规范,而图2的传统WinSock,如微软公司所提供的传统WinSock,是利用TCP协议或UDP协议等两种网络协议来作为网络通信规范,当例如一FTP应用层软件通过传统WinSock作文件下载传输作业时,往往会发生文件数据丢失的情况,尤其在传输MP3、JPG图像等数据时丢失情况更为严重,这是该传统WinSock的错误所导致的结果。由于本发明套接字工具的套接字控制程序仅使用TCP网络协议,能够避免上述的错误。图2套接字工具的套接字控制程序由此目标(object)型态作为实施的说明,所以分为方法(methods)及事件(events)两部分。
以下列举说明本发明套接字工具的套接字控制程序及其语法(syntax):
.SClose结束一服务端电脑及一客户端电脑之间的通信
语法范例:IpSock.SClose
.SConnect以服务端电脑IP的字串(string)及端口参数(Portparameters)建立通信
语法范例:IpSock.SConnect Cstr(IP),CStr(Port)
使用例:
Ren Ws is the name of IDsock
txtIp=″191.164.0.6″,txtPort=″1064″
Ws.SConnect TxtIP,txtPort
.SGetData 传回一特定字串,其是为自数据库执行SQL命令完成后的结果或信息
语法范例:IpSock.SGetData
使用例:
Dim Display Str As String
Rem Ws is the name of Ipsock
DisplayStr=Ws.SGetData
.SSendData以SQL命令字串的长度(length)及SQL命令字串参数自客户端电脑传送数据至服务端电脑
语法范例:IpSock.SSendData LengthOfExecSQLCmdStr&″|″& ExecSQLCmdStr
使用例:
Ren Ws is the name of Ipsock
Dim Execstr=String
Execstr=″SELECT * FROM employee″
Ws.SendData Len(Execstr)& ″|″ & Execstr
.State传回状态值
语法范例:Object.State
其中State状态值如下:
状态值 | 说明 |
0 | Default,Closed |
1 | Open |
2 | Listening |
3 | Connecting,pending |
4 | Resolving host |
5 | Host resolved |
6 | Connecting |
7 | Connected |
8 | Peer is closing the connection |
9 | Error |
.Str2rec 从一输入字串、一函数(Function)传回一特定记录组及一指示字串
语法范例:StroRec.Str2rec
使用例:
Dim rs As New ADODB.Recordset Dim StrtoRec As New StrtoRec.str2rec Dim DisplayStr As String,DataResult As String DisplayStr=Ws.SGetData If StrtoRec.str2rec(DisplayStr,rs,DataResult) =″OK″Then If DataResult= ″″ Then If rs.RecordCount>O Then Ren DG1 is a DataGrid Set DG1.DataSourcel=rs.DataSource End If Set rs=Nothing Else MsgBox″Result″=″ & DataResult″ End If Else MsgBox″ERROR″ End If
以下是本实施更详细的例子:
Option Explicit ′Const m_Def_WaitSec=30 Const m_Def_LocalPort=1024 ′Const m Def TimeOut=30 <!-- SIPO <DP n="5"> --> <dp n="d5"/> ′Const m_Def_TimerFlag=0 ′Const m_Def_CheckAlive=0 ′Dim m_WaitSec As Long Dim m_IocalPort As Long ′Dim m_TimeOut As Long ′Dim m_TimerFlag As Boolean ′Dim m_CheckAlive As Boolean Const SendBinary=1 Const ReceiveBinary=2 Const Normal=0 Private LiveChar As String Private RecData As Variant Private RecDataLen As Long Private LastSend As Variant Private IPAddress As Variant Private Counter As Long Dim SendFileBlock As Boolean Private Send_Mode As Integer ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ ′Public Variable ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ ′Public ShowAhime As Boolean ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ <!-- SIPO <DP n="6"> --> <dp n="d6"/> ′Event List ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ Public Event SClose() Public Event SConnectionRequest(ByVal requestID As Long) Public Event SDataArrival(ByVal bytes Total As Long) Public Event SFileArrival(ByVal FileName As String) Public Event SError(ByVal Number As Integer,Description As String) Public Event SSendComplete() Public Event SConnected() Public Event ConnectionTimeOut() Private s()As Byte Private FileName As String,TbytesReceive As Long,TbytesReceived As Long ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ ′UserControl Property ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ ′Public Property Get waitSec()As Long ′waitSec=m_WaitSec ′End Property ′Public Property Let waitSec(ByVal WaitSecond As Long) ′WaitingForm.WaitTime=WaitSecond ′m_WaitSec=WaitSecond ′PropertyChanged″waitsec″ ′End Property Public Property Get LocalPort()As Long LocalPort=m_LocalPort End Property <!-- SIPO <DP n="7"> --> <dp n="d7"/> Public Property Let LocalPort(ByVal Port As Long) m_LocalPort=Port WS.LocalPort=m_LocalPort PropertyChanged″localport″ End Property ′Public Property Get TimeOut()As Variant ′ TimeOut=m_TimeOut ′End Property ′Public Property Let TimeOut(ByVal vNewValue As Variant) ′If IsNumeric(vNewValue)Then ′ m_TimeOut=CLng(vNewValue) ′ PropertYChanged″timeout″ ′End If ′End Property ′Public Property Get TimerFlag()As Boolean ′TimerFlag=m_TimerFlag ′End Property ′Public Property Let TimerFlag(ByVal vNewValue As Boolean) ′m_TimerFlag=vNewValue ′PropertyChanged″timerflag″ ′End Property ′Public Property Get CheckAlive()As Boolean ′CheckAlive=m_CheckAlive <!-- SIPO <DP n="8"> --> <dp n="d8"/> ′End Property ′Public Property Let CheckAlive(ByVal vNewValue As Boolean) ′m_CheckAlive=vNewValue ′PropertyChanged″checkalive″ ′End Property ′Read Only Public Property Get State()As Integer State=WS.State End Property Public Property Get SocketHandle()As Long SocketHandle=WS.SocketHandle End Property Public Property Get RemotePort()As Long RemotePort=WS.RemotePort End Property Public Property Get LocalIp()As Variant LocalIp=WS.LocalIp End Property Public Property Get RemoteIp()As Variant RemoteIp=WS.RemoteHostIP End Property ′Private Sub Alive Timer() <!-- SIPO <DP n="9"> --> <dp n="d9"/> ′If m_CheckAlive Then ′ Counter=Counter+1 ′ If m_TimerFlag Then ′ If Counter>=m_TimeOut Then ′ WS.Close ′ RaiseEvent ConnectionTimeOut ′ End If ′ End If ′ If WS.State=7 Then ′ WS.SendData LiveChar ′ End If ′ End If ′End Sub Private Sub UserControl_Initialize() Send_Mode=Normal ′ If m_CheckAlive Then ′ Alive.Enabled=True ′ Else ′ Alive.Enabled=False ′ End If LiveChar=Chr(231) End Sub Private Sub UserControl_InitProperties() ′ m_WaitSec=m_Def_WaitSec m_LocalPort=m_Def_LocalPort ′ m_TimeOut=m_Def_TimeOut <!-- SIPO <DP n="10"> --> <dp n="d10"/> ′ m_TimerFlag=m_Def_TimerFlag ′ m_CheckAlive=m_Def_CheckAlive End Sub Private Sub UserControl_ReadProperties(PropBag As PropertyBag) ′ m_WaitSec=PropBag.ReadPropertY(″waitsec″,m_Def_WaitSec) m_LocalPort=PropBag.ReadProperty(″localport″,m_Def_LocalPort) ′ m_TimeOut=PropBag.ReadProperty(″timeout″,m_Def_TimeOut) ′ m_TimerFlag=PropBag.ReadProperty(″timerflag″,m_Def_TimerFlag) ′ m_CheckAlive=PropBag.ReadProperty(″checkalive″,m_Def_CheckAlive) End Sub Private Sub UserControl_Resize() UserControl.Height=300 UserControl.Width=300 End Sub Private Sub UserControl_WriteProperties(PropBag As PropertyBag) ′ Call PropBag.writeProperty(″waitsec″,m_WaitSec, m_Def_WaitSec) Call PropBag.WriteProperty(″localport″,m_LocalPort,m_Def_LocalPort) ′ Call PropBag.WriteProperty(″timeout″,m_TimeOut,m_Def_TimeOut) ′ Call PropBag.WriteProperty(″timerflag″,m_TimerFlag,m_Def_TimerFlag) ′ Call PropBag.WriteProperty(″checkalive″,m_CheckAlive,m_Def_CheckAlive) End Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ ′WinSock Event ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ Private Sub WS_Close() <!-- SIPO <DP n="11"> --> <dp n="d11"/> RaiseEvent SClose End Sub Private Sub WS_Connect() RaiseEvent SConnected End Sub Private Sub WS_ConnectionRequest(ByVal requestID As Long) RaiseEvent SConnectionRequest(requestID) End Sub Private Sub WS_DataArrival(ByVal bytes Total As Long) ′Dim strCompress As New strcomprelib.strcompre Dim RData As Variant,tempStrArray()As String Counter=0 Select Case Send_Mode Case SendBinary For Binary Data WS.GetData RData,vbString If Right(RData,1)=Chr(230)Then If Right(RData,10)=Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9)Then RData=Left(RData,Len(RData)-10) RecData=RecData & RData End If RecData=Elminate(RecData,LiveChar) On Error GoTo errorhandle ′RecData=strCompress.struncompress(RecData) Select Case RecData <!-- SIPO <DP n="12"> --> <dp n="d12"/> Case″ReadyToReceive″ WS.SendData s() Case″ReceiveFileDone″ Send_Mode=Normal SendFileBlock=Ealse ReDim s(0) FileName=″″ RaiseEvent SDataArrival(bytesTotal) Case″ResendFile″ WS.SendData s() End Select RecData=″″ Case ReceiveBinary TbytesReceived=TbytesReceived+bytesTotal WS.GetData s(),vbArray+vbByte Put #1,,s If TbytesReceived>=TbytesReceive Then Close #1 Send_Mode=Normal SSendData(″ReceiveFileDone″) RaiseEvent SFileArrival(″c:\″& FileName) TbytesReceived=0 End If Case Normal ′For Text Message <!-- SIPO <DP n="13"> --> <dp n="d13"/> WS.GetData RData,vbString If Right(RData,1)=Chr(230)Then If Right(RData,10)=Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9)Then RData=Left(RData,Len(RData)-10) RecData=RecData & RData ′If ShowAnime Then ′ShowAnime=False ′Unload WaitingForm ′End If RecData=Elminate(RecData,LiveChar) On Error GoTo errorhandle ′RecData=strCompress.struncompress(RecData) If Left(RecData,17)=″RequestToSendFile″Then tempStrArray=Split(RecData,″|″,-1,vbTextCompare) If UBound(tempStrArray)=2 Then If IsNumeric(tempStrArray(2))Then FileName=CStr(tempStrArray(1)) TbytesReceive=CLng(tempStrArray(2)) Open″c:\″& FileName For Binary Access Write As #1 SSendData(″ReadyToReceive″) Send_Mode=ReceiveBinary End If End If Else RaiseEvent SDataArrival(bytesTotal) End If <!-- SIPO <DP n="14"> --> <dp n="d14"/> RecData=″″ Else If RData<>LiveChar Then RecData=RecData & RData End If ′If ShowAnime Then ′DoEvents ′Correct Progress bar in Here ′End If End If End Select ′Set strCompress=Nothing Exit Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ errorhandle: RecData=″″ ′Set strCompress=Nothing Exit Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ End Sub Private Sub WS Error(ByVal Number As Integer,Description As String,ByVal Scode As Long,ByVal Source As String,ByVal HelpFile As String,ByVal HelpContext As Long, CancelDisplay As Boolean) RaiseEvent SError(Number,Description) End Sub Private Sub WS_SendComplete() RaiseEvent SSendComplete <!-- SIPO <DP n="15"> --> <dp n="d15"/> End Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ ′Control Methods ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ Public Sub SAccept(ByRef requestID As Long) WS.Accept requestID End Sub Public Sub SListen() On Error GoTo errorhandle WS.Listen Exit Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ errorhandle; RaiseEvent SError(Err.Number,Err.Description) ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ End Sub Public Sub SConnect(ByRef IP As Variant,ByRef Port As Variant) On Error GoTo errorhandle WS.Connect IP,Port Exit Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ errorhandle: RaiseEvent SError(Err.Number,Err.Description) ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ End Sub <!-- SIPO <DP n="16"> --> <dp n="d16"/> Public Sub SSendFile(FileName As String) Dim FSO As New FileSystemObject Dim f1 As Long If Dir(FileName)<>″″Then ′Read Bytes in Array of byte Open FileName For Binary Access Read As #1 f1=FileLen(FileName) ReDim s(f1) Get #1,,s() Close #1 SSendData″RequestToSendFile″&″|″& FSO.GetFile(FileName).Name &″|″& FSO.GetFile(FileName).Size SendFileBlock=True ′SendFileBlock=False Send_Mode=SendBinary Else MsgBox″No Such File Found″ End If Set FSO=Nothing End Sub Public Sub SSendData(Data As Variant) ′Dim strCompress As New strcomprelib.strcompre If Not SendFileBlock Then ′ Alive.Enabled=Ealse On Error GoTo errorhandle ′ If ShowAnime Then ′ WaitingForm.Show <!-- SIPO <DP n="17"> --> <dp n="d17"/> ′ WaitingForm.Timer1.Enabled=True ′ End If ′ DoEvents ′ LastSend=strCompress.strCompress(Data) LastSend=Data ′Data=strCompress.struncompress(LastSend) ′WS.SendData LastSend & Chr(230) WS.SendData LastSend & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) & Chr(9) ′WS.SendData LastSend ′Alive.Enabled=True Else MsgBox″Sending File,Please Try Again Later″ End If ′Set strCompress=Nothing Exit Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ errorhandle: RaiseEvent SError(Err.Number,Err.Description) ′Set strCompress=Nothing ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ End Sub Public Sub SClose() On Error GoTo errorhandle WS.Close Exit Sub ′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′′ <!-- SIPO <DP n="18"> --> <dp n="d18"/> errorhandle: RaiseEvent SError(Err.Number,Err.Description) ′ ′′′′′ ′′′′′ ′ ′′′′′ ′′′′′′′′′′′′′′′′′′′′ End Sub Public Function SGetData()As Variant SGetData=RecData RecData=″″ RecDataLen=0 End Function Public Function SGetFileName()As String SGetFileName=FileName End Function Private Function Elminate(DataStr,delimiter As String)As String Dim StrArray()As String,i As Long StrArray=Split(DataStr,delimiter,-1,vbTextCompare) For i=LBound(StrArray)To UBound(StrArray) Elminate=Elminate & StrArray(i) Next i End Function Dim TimeCount As Integer Public WaitTime As Long Private Sub Form_Load() WaitTime=30 TimeCount=0 <!-- SIPO <DP n="19"> --> <dp n="d19"/> Timer1.Enabled=False On Error Resume Next Anime.Open″c:\download.avi″ Anime.AutoPlay=True End Sub Private Sub Timer1_Timer() ′ If TimeCount=WaitTime Then ′ MsgBox″Request Timeout,Please Try Again Later″ ′ TimeCount=0 ′ Else ′ TimeCount=TimeCount+1 ′ End If End Sub
图3是本发明套接字工具的套接字控制程序在一电子商务的应用示意图。多个消费者端电脑10A,通过互联网(INTERNET)/企业网(Intranet)30通信服务端的网页服务电脑20A,以进行商务行为的网页浏览活动。此时,消费者端电脑10A所执行软件的情况,是在各自的消费者端电脑10A皆会执行本发明套接字工具的套接字控制程序,而消费者端电脑10A各自执行的应用软件可能是不同的,例如有些消费者端电脑可能是执行SQL的数据库应用软件、有些消费者端电脑可能是执行下载文件的应用软件、有些消费者端电脑可能是执行浏览器的应用软件等等,并且所有在消费者端电脑10A所执行的应用软件10B皆是利用调用套接字工具的套接字控制程序10C实现数据或文件传输。同时,供应者端的网页服务电脑20A执行本发明套接字工具的套接字控制程序10C,并且产生对应于与正通信中消费者端电脑10A数量的套接字20C,网页服务电脑20A执行一配合套接字工具所开发的服务应用软件20B,例如SQL访问应用软件(SQL Access server),该服务应用软件向SOL数据库或文件数据库访问,并将访问的数据或文件,通过套接字传送回应给对应的消费者端电脑10A的应用软件10B。
图4是本发明套接字工具的增值程序在具有一服务端/客户端的网络环境的应用示意图。本发明套接字工具进一步包括一组用于处理应用层软件的传输数据的增值程序,其特征在于该一组增值程序,其至少包含一加密程序、一解密程序;或者是至少包含一压缩程序、一解压缩程序。本发明套接字工具的增值程序主要是提供安全性、保密性及速度性的网络传输。
虽然本发明己以一较佳实施例揭露如上,但其并非用以限定本发明,本行业的普通技术人员在不脱离本发明的精神和范围内,可在本发明权利要求书所界定的范围内进行各种轻易思及的更动与润饰。
Claims (9)
1.一种用于应用层软件的套接字工具,其特征在于所述的套接字工具由此编写为一程序方式来实施,并执行一电脑内,以提供该电脑的应用层软件调用,使得该电脑能够通过TCP网络与其它电脑的应用层软件通信,该套接字工具包括:
一组用于通信TCP网络的套接字控制程序,其特征在于所述的套接字控制程序是利用TCP协议进行通信。
2.如权利要求1所述的套接字工具,其特征在于所述的套接字工具进一步包括一组用于处理该应用层软件的传输数据的增值程序。
3.如权利要求1所述的套接字工具,其特征在于该一组套接字控制程序,其至少包含一″SAccept″程序、一″SClose″程序、一″SConnect″程序、一″SGetData″程序、一″SListen″程序、一″SSendData″程序、一″SGetFileName″程序、一″SSendFile″程序、 一″SConnectionRequest″程序、一″SDataArrival″程序、一″SError″程序、一″SSendComplete″程序、一″SFileArrlval″程序、一″ConnectionTimeOut″程序。
4.如权利要求2所述的套接字工具,其特征在于该一组增值程序至少包含一加密程序、一解密程序。
5.如权利要求2所述的套接字工具,其特征在于该一组增值程序至少包含一压缩程序、一解压缩程序。
6.如权利要求1所述的套接字工具,其特征在于所述的应用层软件是一使用SQL的数据库应用软件。
7.如权利要求1所述的套接字工具,其特征在于所述的应用层软件是一个用于下载文件的应用软件。
8.如权利要求7所述的套接字工具,其特征在于所述的下载文件分别可以是一MP3歌曲文件、一GIF格式图像文件、一JPG格式图像文件、一影片格式文件。
9.如权利要求1所述的套接字工具,其特征在于所述的应用层软件是一聊天应用软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA021420416A CN1477502A (zh) | 2002-08-23 | 2002-08-23 | 一种用于应用层软件的套接字工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA021420416A CN1477502A (zh) | 2002-08-23 | 2002-08-23 | 一种用于应用层软件的套接字工具 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1477502A true CN1477502A (zh) | 2004-02-25 |
Family
ID=34147928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA021420416A Pending CN1477502A (zh) | 2002-08-23 | 2002-08-23 | 一种用于应用层软件的套接字工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1477502A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018120988A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 一种应用交互方法、装置、物理机及系统 |
-
2002
- 2002-08-23 CN CNA021420416A patent/CN1477502A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018120988A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 一种应用交互方法、装置、物理机及系统 |
CN108287723A (zh) * | 2016-12-30 | 2018-07-17 | 华为技术有限公司 | 一种应用交互方法、装置、物理机及系统 |
US10866846B2 (en) | 2016-12-30 | 2020-12-15 | Huawei Technologies Co., Ltd. | Application interaction method, apparatus, and system, and physical machine |
CN108287723B (zh) * | 2016-12-30 | 2022-07-12 | 华为技术有限公司 | 一种应用交互方法、装置、物理机及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1688836A1 (en) | Utilizing abstract descriptions to generate, exchange, and configure service and client runtimes | |
US7904563B2 (en) | Establishing and utilizing terminal server dynamic virtual channels | |
US8862756B2 (en) | Apparatus, system, and method for facilitating data flow between a first application programming interface and a second application programming interface | |
US7519713B2 (en) | Mapping between object oriented and service oriented representations of a distributed application | |
US20050055398A1 (en) | Protocol agnostic request response pattern | |
US20040083264A1 (en) | Distributed data sharing methods and systems | |
US7284060B2 (en) | Method for transferring data in a system having multiple transports | |
US6931647B1 (en) | Protocol agnostic web listener | |
US20020161784A1 (en) | Method and apparatus to migrate using concurrent archive and restore | |
Myerson | The complete book of middleware | |
US20030135587A1 (en) | Method and system of state management for data communications | |
JP2005501478A (ja) | モバイル通信装置用のデータパケットルータ | |
JP4424910B2 (ja) | 任意のコンポーネントに相互にデータを転送させるシステム | |
CN1477502A (zh) | 一种用于应用层软件的套接字工具 | |
CN1142472C (zh) | 执行输入/输出操作的方法和信息处理系统 | |
US7860989B2 (en) | Efficient transformation of interchange format messages | |
DE60121605T2 (de) | Aufruf einer entfernten funktion mit nachrichten in einer verteilten rechnerumgebung | |
US20070044070A1 (en) | Apparatus, system, and method for java bean delta generation | |
US20060047781A1 (en) | Method and system for providing remote portal service modules | |
Rieken et al. | Adventures in UNIX Network Applications Programming | |
JP3569114B2 (ja) | 要求応答型無限長データ通信方法 | |
US20230075818A1 (en) | Façade Server | |
Siegel | An overview of CORBA 3 | |
Hunter | Network operating systems: making the right choices | |
Hagino | Mbuf issues in 4.4 BSD IPv6/IPsec support-experiences from KAME IPv6/IPsec implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |