SendNetworkFileEx()? - BETA Bitte testen!!!

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

SendNetworkFileEx()? - BETA Bitte testen!!!

Beitrag 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
Zuletzt geändert von Scarabol am 13.04.2008 12:29, insgesamt 2-mal geändert.
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Hm, was für Befehle sollen das werden? :wink:

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. :roll:

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 :wink:

... is aber nur meine Meinung.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

OMG!!!!

Hat da vielleicht mal einer mit PB ein Trojanisches Pferd geproggt?
Bzw. Wo bekomm ich den Code her? :D

Das tritt beim compiliern auf...

Was mach ich jetzt?

Bild

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

AntiVir deinstallieren ... und einen anderen Virenscanner drauf machen :lol:
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 :wink:
So hat der zumindest überhaupt nichts mehr in dieser Tipps und Tricks-
Abteilung zu suchen.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Recht haste hatte mir das auch alles viieeeelll einfacher vorgestellt...

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Du solltest mal die Information von Avira dazu aufrufen :wink:
Zum Beispiel wenn die DownloadToFile_() API verwendet wird, sieht AVIRA
das als evtl. Virus an. Die heuristische Suche ist sehr empfindlich :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Anders schreiben?
Naja werds mal versuchen...

Der Anwender hätte aber auch das Problem oder?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Wenn die Meldung auch bei ausgeschaltetem Debugger kommt, ja.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag 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))
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Antworten