Bonsoir !
Cela fait un petit moment que je connais votre site et ce n'est seulement maintenant que je met les camboui ! :D
J'ai lu des dizaines de post sur la traduction As => VB.net et je souhaiterais savoir si ma traduction du fichier ServerConnection est bonne ?
Car il m'affiche des erreurs, et je ne voudrais pas faire un code remplis d'erreur alors je préférerais m'assurer que cette première classe est bonne ;)
Cliquez pour révéler
Cliquez pour masquer
Public Class Class1
Namespace com.ankamagames.jerakine.network
import com.ankamagames.jerakine.logger.*
import com.ankamagames.jerakine.messages.*
import com.ankamagames.jerakine.network.messages.*
import com.ankamagames.jerakine.replay.*
import flash.events.*
import flash.net.*
import flash.utils.*
Public Class ServerConnection
Private _rawParser As RawDataParser
Private _handler As MessageHandler
Private _remoteSrvHost As String
Private _remoteSrvPort As UInteger
Private _connecting As Boolean
Private _outputBuffer As Array
Private _splittedPacket As Boolean
Private _staticHeader As Integer
Private _splitedPacketId As UInteger
Private _splitedPacketLength As UInteger
Private _inputBuffer As ByteArray
Private _pauseBuffer As Array
Private _pause As Boolean
Private _latencyBuffer As Array
Private _latencySent As UInteger
Private _lastSent As UInteger
Private _timeoutTimer As Timer
Private _lagometer As ILagometer
Public disabled As Boolean
Public disabledIn As Boolean
Public disabledOut As Boolean
Private DEBG_DATA As Boolean = True
Private LATENCY_AVG_BUFFER_SIZE As UInteger = 50
Public MEMORY_LOG As Dictionary = New Dictionary(True)
Static Const _log As Logger = Log.getLogger(getQualifiedClassName(ServerConnection))
Public function ServerConnection(Byval param1 As String = null,Byval param2 As Integer = 0)
Me._pauseBuffer = New Array()
Me._latencyBuffer = New Array()
super(param1, param2)
Me._remoteSrxHost = param1
Me._remoteSrvPort = param2
Return
End Function
Public function set rawParser() As RawDataParser
Return Me._rawParser
End Function
Public function get rawParser(param1 As RawDataParser)
Me._rawParser = param1
Return
End Function
Public function get handler() As MessageHandler
Return Me._handler
End Function
Public function set handler(param1 As MessageHandler)
Me._handler = param1
Return
End Function
Public function get latencyAvg() As UInteger
Dim _loc_2 As UInteger = 0
If Me._latencyBuffer.length == 0 Then
Return 0
End If
Dim _loc_1 As UInteger = 0
For Each _loc_2 In Me._latencyBuffer
_loc_1 = _loc_1 + _loc_2
Next
Return _loc_1 / Me._latencyBuffer.length
End Function
Public function get latencySamplesCount() As UInteger
Return Me._latencyBuffer.length
End Function
Public function get latencySamplesMax() As UInteger
Return LATENCY_AVG_BUFFER_SIZE
End Function
Public function get port() As UInteger
Return Me._remoteSrvPort
End Function
Public function get lastSent() As UInteger
Return Me._lastSent
End Function
Public function set lagometer(Byval param1 As ILagometer)
Me._lagometer = param1
Return
End Function
Public function get lagometer() As ILagometer
Return Me._lagometer
End Function
Public Function connect(ByVal param1 As String, ByVal param2 As Integer)
If Me._connecting Or disabled Or disabledIn And disabledOut Then
Return
End If
Me._connecting = True
Me._remoteSrvHost = param1
Me._remotreSrvPort = param2
Me.addListeners()
_log.trace("Connecting to " + param1 + ":" + param2 + "...")
super.connect(param1, param2)
Me._timeoutTimer = New Timer(10000, 1)
Me._timeoutTimer.start()
Me._timeoutTimer.addEventListener(TimerEvent.TIMER_COMPLETE, Me.onSocketTimeOut)
Return
End Function
Public Function send(ByVal param1 As INetworkMessage)
If DEBUG_DATA Then
_log.trace("[SND] " + param1)
End If
LogFrame.log(LogTypeEnum.NETWORK_OUT, param1)
If disabled Or disabledOut Then
Return
End If
If !param1.isInitialize Then
_log.warn("Sending non-initialized packet " + param1 + " !")
End If
If !connected Then
If Me._connecting Then
Me._outputBuffer.push(param1)
End If
Return
End If
If Me._lagometer Then
Me._lagometer.ping()
End If
Me.lowSend(param1)
Return
End Function
Public Function toString() As String
Dim _loc_1 As String = "Server connection status:\n"
_loc_1 = _loc_1 + (" Connected: " + (connected ? ("Yes") : ("No") + "\n")
If connected Then
_loc_1 = _loc_1 + (" Connected to: " + Me._remoteSrvHost + ":" + this._remoteSrvPort + "\n")
Else
_loc_1 = _loc_1 + (" Connecting: " + (Me._connecting ? ("Yes") : ("No")) + "\n")
End If
If Me._connecting Then
_loc_1 = _loc_1 + (" Connecting to: " + Me._remoteSrvHost + ":" + this._remoteSrvPort + "\n")
End If
_loc_1 = _loc_1 + " Raw parser: " + Me.rawParser + "\n")
_loc_1 = _loc_1 + " Message handler: " + Me.handler + "\n")
If Me._outputBuffer Then
_loc_1 = _loc_1 + (" Output buffer: " + Me._ouputBuffer.length + " message(s)\n")
End If
If Me._inputBuffer Then
_loc_1 = _loc_1 + (" Input buffer: " + Me._inputBuffer.length + " message(s)\n")
End If
If Me._splittedPacket Then
_loc_1 = _loc_1 + " Splitted message in the input buffer:\n"
_loc_1 = _loc_1 + (" Message ID: " + Me._splittedPacketId + "\n")
_loc_1 = _loc_1 + (" Awaited length: " + Me._splittedPacketLength + "\n")
End If
Return _loc_1
End Function
Public Function pause()
Me._pause = True
Return
End Function
Public function resume()
Dim _loc_1 As INetworkMessage = null
Me._pause = False
For Each _loc_1 In Me._pauseBuffer
If DEBUG_DATA Then
_loc.trace("[RCV " + _loc_1)
End If
_log.logDirectly(New NetworkLogEvent(_loc_1, True))
Next
Me._pauseBuffer = []
Return
End Function
Public Function stopConnectionTimeout()
If Me._timeoutTimer Then
Me._timeoutTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, Me.onSocketTimeOut)
Me._timeoutTime.stop()
Me._timeoutTimer = null
End If
Return
End Function
Public Function addListeners()
addEventListener(ProgressEvent.SOCKET_DATA, Me.onSocketData, False, 0, True)
addEventListener(Event.CONNECT, Me.onConnect, false, 0, true)
addEventListener(Event.CLSE, Me.onClose, false, 0, true)
addEventListener(IOErrorEvent.IO_ERROR, Me.onSocketError, False, 0, True)
addEventListener(SecurityErrorEvent.SECURITY_ERROR, Me.onSecurityError, False, 0, True)
Return
End Function
Public Function receive(ByVal param1 As IDataInput)
Dim msg As INetworkMessage
Dim src As * = param1
If Me._lagometer Then
Me._lagometer.pong()
End If
Dim count As UInteger
Try
While src.bytesAvailable > 0
msg = Me.lowReceive(src)
If msg Is INetworkDataContainerMessage Then
While INetworkDataContainerMessage(msg).content.bytesAvailable
Me.receive(INetworkDataContainerMessage(msg).content)
End While
End If
If msg != null AND !(msg Is INetworkDataContainerMessage) Then
If !Me._pause Then
If DEBUG_DATA Then
_log.trace("[RCV] " + msg)
End If
_log.logDirectly(New NetworkLogEvent(msg, True))
If !disabledIn Then
Me._handler.process(msg)
End If
Else
Me._pauseBuffer.push(msg)
End If
Else
break()
End If
count = (count + 1)
End While
Catch (e As Error)
If e.getStackTrace() Then
_log.error("Error while reading socket. " + e.getStackTrace())
Else
_log.error("Error while reading socket. No stack trace available")
End If
close()
End Try
Return
End Function
Function getMessageId(ByVal param1 As UInteger) As UInteger
Return param1 >> NetworkMessage.BIT_RIGHT_SHIFT_LEN_PACKET_ID
End Function
Function readMessageLength(ByVal param1 As UInteger, ByVal param2 As IDataInput) As UInteger
Dim _loc_3 As * = param1 & NetworkMessage.BIT_MASK
Dim _loc_4 As UInteger = 0
Select Case _loc_3
Case 0
Case 1
_loc_4 = param2.readUnsignedByte()
Case 2
_loc_4 = param2.readUnsignedShort()
Case 3
_loc_4 = ((param2.readByte() & 255) << 16) + ((param2.readByte() & 255) << 8) + (param2.readByte() & 255)
Case Else
End Select
Return _loc_4
End Function
Protected Function lowReceive(ByVal param1 As IDataInput) As INetworkMessage
Dim _loc_2 As INetworkMessage = null
Dim _loc_3 As UInteger = 0
Dim _loc_4 As UInteger = 0
Dim _loc_5 As UInteger = 0
If !Me._splittedPacket Then
If param1.bytesAvailable < 2 Then
Return null
End If
_loc_3 = param1.readUnsignedShort()
_loc_4 = Me.getMessageId(_loc_3)
If param1.bytesAvailable >= (_loc_3 & NetworkMessage.BIT_MASK) Then
_loc_5 = Me.readMessageLength(_loc_3, param1)
If param1.bytesAvailable >= _loc_5 Then
Me.updateLatency()
_loc_2 = Me._rawParser.parse(param1, _loc_4, _loc_5)
MEMORY_LOG([_loc_2] = 1)
Else
Me._statisHeader = -1
Me._splittedPacketLength = _loc_5
Me._splittedPacketId = _loc_4
Me._splittedPacket = True
readBytes(Me._inputBuffer, 0, param1.bytesAvailable)
Return null
End If
Else
Me._statisHeader = _loc_3
Me._splittedPacketLength = _loc_5
Me._splittedPacketId = _loc_4
Me._splittedPacket = True
Return null
End If
Else
If Me._staticHeader != -1 Then
Me._splittedPacketLength = Me.readMessageLength(Me._staticHeader, param1)
Me._staticHeader = -1
End If
If param1.bytesAvailable + Me._inputBuffer.length >= Me._splittedPacketLength Then
param1.readBytes(Me._inputBuffer, Me._inputBuffer.length, Me._splittedPacketLength - Me._inputBuffer.length)
Me._inputBuffer.position = 0
Me.updateLatency()
_loc_2 = Me._rawParser.parse(Me._inputBuffer, Me._splittedPacketId, Me.splittedPacketLength)
MEMORY_LOG([_loc_2] = 1)
Me._splittedPacket = False
Me._inputBuffer = New ByteArray()
Return _loc_2
End If
param1.readBytes(Me._inputBuffer, Me._inputBuffer.length, param1.bytesAvailable)
Return null
End If
Return _loc_2
End Function
Function updateLatency()
If Me._pause OR Me._pauseBuffer.length > 0 OR Me._latestSent == 0 Then
Return
End If
Dim _loc_1 As * = getTimer()
Dim _loc_2 As * = _loc_1 - Me._latestSent
Me._latestSent = 0
Me._latencyBuffer.push(_loc_2)
If Me._latencyBuffer.length > LATENCY_AVG_BUFFER_SIZE Then
Me._latencyBuffer.shift()
End If
Return
End Function
Protected Function onConnect(Byval event As Event)
Dim _loc_2 As INetworkMessage = null
Me._connecting = False
If Me._timeoutTimer Then
Me._timeoutTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, Me.onSocketTimeOut)
Me._timeoutTimer.stop()
Me._timeoutTimer = null
End If
If DEBUG_DATA Then
_loc.trace("Connection opened.")
End If
For Each _loc_2 In Me._outputBuffer
Me.lowSend(_loc_2, False)
Next
flush()
Me._inputBuffer = New ByteArray()
Me._outputBuffer = New Array()
Return
End Function
Protected Function onClose(Byval event As Event)
If DEBUG_DATA Then
_loc.trace("Connection closed.")
End If
setTimeout(M.removeListeners, 30000)
If Me._lagometer Then
Me._lagometer.stop()
End If
Me._handler.process(New ServerConnectionClosedMessage(Me))
Me._connecting = False
Me._ouputBuffer = New Array()
Return
End Function
Protected Function onSocketData(Byval event As ProgressEvent)
Me.receive(Me)
Return
End Function
Protected Function onSocketError(Byval event As IOErrorEvent)
If Me._lagometer Then
Me._lagometer.stop()
End If
_log.error("Failure while opening socket.")
Me._connecting = False
Me._handler.process(New ServerConnectionFailedMessage(Me, "timeout§§§"))
Return
End Function
Protected Function onSecurityError(Byval event As SecurityErrorEvent)
If Me._lagometer Then
Me._lagometer.stop()
End If
If Me.connected Then
_log.error("Security error while connected : " + event.text)
Me._handler.process(new ServerConnectionFailedMessage(Me, event.text))
Else
_log.error("Security error while disconnected : " + event.text)
End If
Return
End Function
End Class
End Namespace
End Class
Questions :
Mes erreurs sont :
Déclaration attendue concernant les imports tu début
Les instructions 'Namespace' ne peuvent intervenir qu'au niveau du fichier ou de l'espace de noms concernant le namespace
Des valeurs par défaut ne peuvent pas être fournies pour des paramètres qui ne sont pas déclarés 'Optional'. concernant la ligne 39, est-ce le Byval qui bloque ?
Mot clé non valide en tant qu'identificateur concernant les get et set présent après la déclaration de certaines fonctions comme rawParser()
Ensuite j'aurais quelques questions étant débutant en programmation VB.net, je souhaiterais savoir, j'ai placé exactement ce code dans un fichier Classe, comment je l'importe dans mon fichier Main ? Ensuite..Euh..Sa peut paraître boulette mais comment puis-je lancer ce morceau de code ?
PS : Le lien pour télécharger bot overedge est mort, je n'ai pu donc m'en servir comme modèle