Seite 1 von 1
SendNetworkFileEx()? - BETA Bitte testen!!!
Verfasst: 12.04.2008 20:42
von Scarabol
Hi Leute,
hat schonmal einern nen Ersatz für die oben genannten Befehle gecodet?
Ich frag extra hier, da ich falls nicht vorhatte sowas zu coden...
Gruß
Scarabol
Verfasst: 12.04.2008 22:21
von PMV
Hm, was für Befehle sollen das werden?
Welches Protokoll nutzen diese? Oder arbeiten SendNetworkFileEx() und
ReceiveNetworkFileEx() zusammen aufbauend auf einem eigenen Protokoll?
Zum empfangen einer Datei über Http wäre meine Include zumindest schon
mal etwas, womit du rumexperimentieren könntest. Ausbauen/ Verbessern
tue ich die eh demnächst wieder. Obwohl "demnächst" auch recht dehnbar
ist.
http://www.purebasic.fr/german/viewtopi ... c&start=10
Allerdings wird PB4.20 ja eh für FTP und Http entsprechende Befehle
mitbringen. Und für einen Chat muss so etwas eh immer angepasst werden
an das eigene Protokoll. Wer mit den Netzwerk-Befehlen arbeitet, wird
wohl am ende so oder so was eigenes machen müssen, schon für den
Lerneffekt
... is aber nur meine Meinung.
MFG PMV
Verfasst: 12.04.2008 22:46
von Scarabol
OMG!!!!
Hat da vielleicht mal einer mit PB ein Trojanisches Pferd geproggt?
Bzw. Wo bekomm ich den Code her?
Das tritt beim compiliern auf...
Was mach ich jetzt?
Gruß
Scarabol
Verfasst: 12.04.2008 23:00
von PMV
AntiVir deinstallieren ... und einen anderen Virenscanner drauf machen

Das Problem mit AntiVir und PB tritt wohl immer wieder auf, wie viele
AntiVir deswegen schon den rücken gekehrt haben weis ich nicht, im Forum
sollte sich aber sicher etwas finden lassen. Die Heuristiksuche runter
schrauben hat glaub ich auch vielen geholfen.
so kann man allerdings auch seinen eigenen Thread Offtopic machen

So hat der zumindest überhaupt nichts mehr in dieser Tipps und Tricks-
Abteilung zu suchen.
MFG PMV
Verfasst: 12.04.2008 23:02
von Scarabol
Recht haste hatte mir das auch alles viieeeelll einfacher vorgestellt...
Gruß
Scarabol
Verfasst: 12.04.2008 23:03
von ts-soft
Du solltest mal die Information von Avira dazu aufrufen
Zum Beispiel wenn die DownloadToFile_() API verwendet wird, sieht AVIRA
das als evtl. Virus an. Die heuristische Suche ist sehr empfindlich

Verfasst: 12.04.2008 23:04
von STARGÅTE
da istwieder n netten Zitat für Kaeru Gaman:
"Hat da vielleicht mal einer mit PB ein Trojanisches Pferd geproggt?"
rofl ^^
@Scarabol, ich habe auch schon oft eine Meldung von AV
http://www.purebasic.fr/german/viewtopi ... =heuristig
Aber da war es nur ein Verdacht.
Diese "Funde" kommen seltsammerweise immer nur bei Netzwerk und Download proceduren, was ja auch recht logisch ist, schließlich verbreiten sich ja die meinsten bösartigen Sachen in Netz, und da brauchen die ja auch solche Befehle.
Bei mir hat ein einfaches "vertauschen/verändern" der normalen Form geholfen, das AV nicht mehr anschlug (einfach n paar codezeilen anders schreiben)
Verfasst: 12.04.2008 23:06
von Scarabol
Anders schreiben?
Naja werds mal versuchen...
Der Anwender hätte aber auch das Problem oder?
Gruß
Scarabol
Verfasst: 12.04.2008 23:25
von PMV
Wenn die Meldung auch bei ausgeschaltetem Debugger kommt, ja.
MFG PMV
Verfasst: 13.04.2008 12:32
von Scarabol
Hi Leute,
ohne Debugger kommt die Meldung nicht

, oder man setzt einfach ein OpenWindow an den Anfang... ??? so einfach ??? toller Virenscanner
server.pb
Code: Alles auswählen
Structure Client
id.l
EndStructure
Procedure SendFile(string)
If string = 0
Debug "invalid string"
ProcedureReturn 0
EndIf
id = Val(StringField(PeekS(string), 1, "!"))
file$ = StringField(PeekS(string), 2, "!")
filesize = FileSize(file$)
If filesize < 0
Debug "invalid filesize"
Debug filesize
ProcedureReturn 0
EndIf
file = ReadFile(#PB_Any, file$)
If file = 0
Debug "file not found"
Debug file$
ProcedureReturn 0
EndIf
buffer = AllocateMemory(4)
PokeL(buffer, filesize)
If SendNetworkData(id, buffer, 4) = -1
Debug "can't send data 1"
ProcedureReturn 0
EndIf
While start+5000 < Lof(file)
buffer = AllocateMemory(5000)
FileSeek(file, start)
ReadData(file, buffer, 5000)
again2:
If SendNetworkData(id, buffer, 5000) = -1
If i < 2
Delay(100)
Goto again2
Else
Debug "can't send data 2"
ProcedureReturn 0
EndIf
Else
i = 0
EndIf
FreeMemory(buffer)
start+5000
Wend
l = Lof(file)-start
buffer = AllocateMemory(l)
FileSeek(file, start)
ReadData(file, buffer, l)
If SendNetworkData(id, buffer, l) = -1
Debug "can't send data 3"
ProcedureReturn 0
EndIf
FreeMemory(buffer)
CloseFile(file)
Debug "file transfer complete"
EndProcedure
If InitNetwork() = 0
End
EndIf
If CreateNetworkServer(1, 5142) = 0
End
EndIf
Global NewList Client.Client()
Repeat
netevent = NetworkServerEvent()
clientid = EventClient()
If netevent = #PB_NetworkEvent_Connect
AddElement(Client())
Client()\id = clientid
string$ = Str(clientid)+"!temp.png"
CreateThread(@SendFile(), @string$)
EndIf
Delay(10)
ForEver
client.pb
Code: Alles auswählen
If InitNetwork() = 0
End
EndIf
conid = OpenNetworkConnection("localhost", 5142)
If conid = 0
End
EndIf
OpenWindow(1, 0, 0, 800, 600, "", #PB_Window_ScreenCentered|#PB_Window_Invisible)
CreateGadgetList(WindowID(1))
Procedure Update(conid)
Protected all, file, p, f, buffer, len, filesize
Repeat
If NetworkClientEvent(conid) = #PB_NetworkEvent_Data
all = 0
p = 0
Repeat
buffer = AllocateMemory(2000)
len = ReceiveNetworkData(conid, buffer, 2000)
If all
all = ReAllocateMemory(all, MemorySize(all)+len)
Else
all = AllocateMemory(len)
p = 0
EndIf
CopyMemory(buffer, all+p, len)
p+len
FreeMemory(buffer)
buffer = 0
Delay(1)
Until len < 2000
Break
EndIf
Delay(1)
ForEver
filesize = PeekL(all)
Debug filesize
file = AllocateMemory(MemorySize(all)-4)
CopyMemory(all+4, file, MemorySize(all)-4)
f = MemorySize(all)-4
FreeMemory(all)
all = 0
Repeat
If NetworkClientEvent(conid) = #PB_NetworkEvent_Data
all = 0
p = 0
Repeat
buffer = AllocateMemory(2000)
len = ReceiveNetworkData(conid, buffer, 2000)
If all
all = ReAllocateMemory(all, MemorySize(all)+len)
Else
all = AllocateMemory(len)
p = 0
EndIf
CopyMemory(buffer, all+p, len)
p + len
FreeMemory(buffer)
buffer = 0
Delay(1)
Until len < 2000
file = ReAllocateMemory(file, MemorySize(file)+MemorySize(all))
CopyMemory(all, file+f, MemorySize(all))
f + MemorySize(all)
FreeMemory(all)
state.f = MemorySize(file)*100/filesize
Debug state
EndIf
Delay(1)
Until MemorySize(file) >= filesize
CreateFile(1, "temp2.png")
WriteData(1, file, MemorySize(file))
EndProcedure
WaitThread(CreateThread(@Update(), conid))