Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Const NET_DLL_FILE$  = "cbNetwork.dll"
  2.  
  3. //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
  4. // Muistipalojen käsittely.
  5. // Kirjaston sisäiseen käyttöön.
  6. //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
  7. Global gNetMemBlock, gNetMemBlockOffset
  8.  
  9. Function _Net_InitMemBlock(_size = 0)
  10.     If gNetMemBlock Then DeleteMEMBlock gNetMemBlock
  11.     gNetMemBlock = MakeMEMBlock(_size + 4)
  12.     PokeInt gNetMemBlock, 0, 0
  13.     gNetMemBlockOffset = 4
  14. EndFunction
  15.  
  16. Function _Net_DeleteMemBlock()
  17.     DeleteMEMBlock gNetMemBlock
  18.     gNetMemBlockOffset = 0
  19.     gNetMemBlock = 0
  20. EndFunction
  21.  
  22. Function _Net_CallDll(_method$)
  23.     lMemSize = MEMBlockSize(gNetMemBlock)
  24.     PokeInt gNetMemBlock, 0, lMemSize
  25.     CallDLL NET_DLL_FILE, _method, gNetMemBlock
  26.     gNetMemBlockOffset = 0
  27. EndFunction
  28.  
  29. Function _Net_MemBlockResize(_length)
  30.     lMemSize = MEMBlockSize(gNetMemBlock)
  31.     If gNetMemBlockOffset + _length > lMemSize Then
  32.         ResizeMEMBlock gNetMemBlock, gNetMemBlockOffset + _length
  33.     EndIf
  34. EndFunction
  35.  
  36. Function _Net_PutInt(_value)
  37.     _Net_MemBlockResize(4)
  38.     PokeInt gNetMemBlock, gNetMemBlockOffset, _value
  39.     gNetMemBlockOffset + 4
  40. EndFunction
  41.  
  42. Function _Net_GetInt()
  43.     lRetVal = PeekInt(gNetMemBlock, gNetMemBlockOffset)
  44.     gNetMemBlockOffset + 4
  45.     Return lRetVal
  46. EndFunction
  47.  
  48. Function _Net_PutShort(_value)
  49.     _Net_MemBlockResize(2)
  50.     PokeShort gNetMemBlock, gNetMemBlockOffset, _value
  51.     gNetMemBlockOffset + 2
  52. EndFunction
  53.  
  54. Function _Net_GetShort()
  55.     lRetVal = PeekShort(gNetMemBlock, gNetMemBlockOffset)
  56.     If lRetVal > 32768 Then lRetVal = lRetVal - 65536
  57.     gNetMemBlockOffset + 2
  58.     Return lRetVal
  59. EndFunction
  60.  
  61. Function _Net_GetUShort()
  62.     lRetVal = PeekShort(gNetMemBlock, gNetMemBlockOffset)
  63.     gNetMemBlockOffset + 2
  64.     Return lRetVal
  65. EndFunction
  66.  
  67. Function _Net_PutFloat(_value#)
  68.     _Net_MemBlockResize(4)
  69.     PokeFloat gNetMemBlock, gNetMemBlockOffset, _value
  70.     gNetMemBlockOffset + 4
  71. EndFunction
  72.  
  73. Function _Net_GetFloat#()
  74.     lRetVal# = PeekFloat(gNetMemBlock, gNetMemBlockOffset)
  75.     gNetMemBlockOffset + 4
  76.     Return lRetVal
  77. EndFunction
  78.  
  79. Function _Net_PutByte(_value)
  80.     _Net_MemBlockResize(1)
  81.     PokeByte gNetMemBlock, gNetMemBlockOffset, _value
  82.     gNetMemBlockOffset + 1
  83. EndFunction
  84.  
  85. Function _Net_GetByte()
  86.     lRetVal = PeekByte(gNetMemBlock, gNetMemBlockOffset)
  87.     gNetMemBlockOffset + 1
  88.     Return lRetVal
  89. EndFunction
  90.  
  91. Function _Net_PutString(_value$)
  92.     lStrLen = Len(_value)
  93.     _Net_MemBlockResize(lStrLen + 4)
  94.     PokeInt gNetMemBlock, gNetMemBlockOffset, lStrLen
  95.     gNetMemBlockOffset + 4
  96.     For i = 1 To lStrLen
  97.         PokeByte gNetMemBlock, gNetMemBlockOffset, Asc(Mid(_value, i, 1))
  98.         gNetMemBlockOffset + 1
  99.     Next i
  100. EndFunction
  101.  
  102. Function _Net_GetString$()
  103.     lStrLen = _Net_GetInt()
  104.     lRetVal$ = ""
  105.     For i = 1 To lStrLen
  106.         c = _Net_GetByte()
  107.         If c > 0 Then lRetVal = lRetVal + Chr(c)
  108.     Next i
  109.     Return lRetVal
  110. EndFunction
  111. //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  112. // Muistipalojen käsittely.
  113. //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  114.  
  115. //==============================================================================
  116. // API_DLL_Version
  117. //==============================================================================
  118. Global gNetDllVersion#
  119. gNetDllVersion = Net_DLL_Version()
  120. If gNetDllVersion = 0 Then
  121.     MakeError "File cbNetwork.dll not be found!"
  122. EndIf
  123. If gNetDllVersion <> 1.0 Then
  124.     MakeError "Incorrect library version (cbNetwork.dll)!"
  125. EndIf
  126.  
  127. Function Net_DLL_Version#()
  128.     _Net_InitMemBlock(4)
  129.     _Net_PutFloat(0)
  130.     _Net_CallDll("_Version")
  131.     lRetVal# = _Net_GetFloat()
  132.     _Net_DeleteMemBlock()
  133.     Return lRetVal
  134. EndFunction
  135. //------------------------------------------------------------------------------
  136. // API_DLL_Version
  137. //------------------------------------------------------------------------------
  138.  
  139. Global HTTP_ContentType$, HTTP_ContentLength
  140. Global Net_ClientId$
  141.  
  142. Function InitServer(_port, _timeout = 5000)
  143.     _Net_InitMemBlock()
  144.     _Net_putInt(_port)
  145.     _Net_putInt(_timeout)
  146.     _Net_CallDll("_InitServer")
  147.     lRetVal = _Net_GetInt()
  148.     _Net_DeleteMemBlock()
  149.     Return lRetVal
  150. EndFunction
  151.  
  152. Function CloseServer()
  153.     _Net_InitMemBlock(4)
  154.     _Net_CallDll("_CloseServer")
  155.     lRetVal = _Net_GetInt()
  156.     _Net_DeleteMemBlock()
  157.     Return lRetVal
  158. EndFunction
  159.  
  160. Function InitClient(_host$, _port, _timeout = 5000)
  161.     _Net_InitMemBlock()
  162.     _Net_putString(_host)
  163.     _Net_putInt(_port)
  164.     _Net_PutInt(_timeout)
  165.     _Net_CallDll("_InitClient")
  166.     lRetVal = _Net_GetInt()
  167.     _Net_DeleteMemBlock()
  168.     Return lRetVal
  169. EndFunction
  170.  
  171. Function ClientSend()
  172.     _Net_CallDll("_ClientSend")
  173.     Return _Net_GetInt()
  174. EndFunction
  175.  
  176. Function ClientSendBack()
  177.     _Net_CallDll("_ClientSendBack")
  178.     Return _Net_GetInt()
  179. EndFunction
  180.  
  181. Function ClientState()
  182.     _Net_InitMemBlock(4)
  183.     _Net_CallDll("_ClientState")
  184.     Return _Net_GetInt()
  185. EndFunction
  186.  
  187. Function ClientRead()
  188.     _Net_InitMemBlock(4096)
  189.     _Net_CallDll("_ClientRead")
  190.     Return _Net_GetInt()
  191. EndFunction
  192.  
  193. Function GetNetErrorString$(_msg)
  194.     _Net_InitMemBlock(260)
  195.     _Net_putInt(_msg)
  196.     _Net_CallDll("_GetErrorString")
  197.     sRetVal$ = _Net_GetString()
  198.     _Net_DeleteMemBlock()
  199.     Return sRetVal
  200. EndFunction
  201.  
  202. Function ServerSend()
  203.     _Net_CallDll("_ServerSend")
  204.     Return _Net_GetInt()
  205. EndFunction
  206.  
  207. Function ServerRead()
  208.     _Net_InitMemBlock(4096)
  209.     _Net_CallDll("_ServerRead")
  210.     nRetVal = _Net_GetInt()
  211.     Net_ClientId = _Net_GetString() + ":" + _Net_GetInt()
  212.     return nRetVal
  213. EndFunction
  214.  
  215. Function HTTPGet(_url$, _background = 0)
  216.     _Net_InitMemBlock()
  217.     _Net_PutString(_url)
  218.     _Net_PutByte(_background)
  219.     _Net_CallDll("_HTTPGet")
  220.     nRetVal = _Net_GetInt()
  221.     HTTP_ContentLength = _Net_GetInt()
  222.     HTTP_ContentType = _Net_GetString()
  223.    
  224.     _Net_DeleteMemBlock()
  225.     Return nRetVal
  226. EndFunction
  227.  
  228. Function HTTPDownloadState()
  229.     _Net_InitMemBlock()
  230.     _Net_CallDll("_HTTPDownloadState")
  231.     nRetVal = _Net_GetInt()
  232.     _Net_DeleteMemBlock()
  233.     Return nRetVal
  234. EndFunction
  235.  
  236. Function HTTPSaveContent(_file$)
  237.     _Net_InitMemBlock()
  238.     _Net_putString(_file)
  239.     _Net_CallDll("_HTTPSaveContent")
  240.     _Net_DeleteMemBlock()
  241. EndFunction
  242.  
  243. Function HTTPLoadContent()
  244.     _Net_InitMemBlock(HTTP_ContentLength)
  245.     _Net_CallDll("_HTTPLoadContent")
  246. EndFunction
  247.  
  248. Function HTTPLoadContentImage()
  249.     _Net_InitMemBlock(256)
  250.     _Net_putInt(0)
  251.     _Net_CallDll("_HTTPLoadContentImage")
  252.     nWidth = _Net_GetInt()
  253.     nHeight = _Net_GetInt()
  254.     _Net_DeleteMemBlock()
  255.     _Net_InitMemBlock((nWidth * nHeight) * 4)
  256.     _Net_putInt(1)
  257.     _Net_CallDll("_HTTPLoadContentImage")
  258.     iRetImage = MakeImage(nWidth, nHeight)
  259.     Lock Image(iRetImage)
  260.     For nY = 0 To nHeight - 1
  261.         For nX = 0 To nWidth - 1
  262.             PutPixel2 nX, nY, _Net_GetInt(), Image(iRetImage)
  263.         Next nX
  264.     Next nY
  265.     Unlock Image(iRetImage)
  266.     _Net_DeleteMemBlock()
  267.     Return iRetImage
  268. EndFunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement