CN1477502A - 一种用于应用层软件的套接字工具 - Google Patents

一种用于应用层软件的套接字工具 Download PDF

Info

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
Application number
CNA021420416A
Other languages
English (en)
Inventor
梁国恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CNA021420416A priority Critical patent/CN1477502A/zh
Publication of CN1477502A publication Critical patent/CN1477502A/zh
Pending legal-status Critical Current

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所述的套接字工具,其特征在于所述的应用层软件是一聊天应用软件。
CNA021420416A 2002-08-23 2002-08-23 一种用于应用层软件的套接字工具 Pending CN1477502A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018120988A1 (zh) * 2016-12-30 2018-07-05 华为技术有限公司 一种应用交互方法、装置、物理机及系统

Cited By (4)

* Cited by examiner, † Cited by third party
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