Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Jpg copy ....

Frage Entwicklung C und C++

Mitglied: lowbyte1

lowbyte1 (Level 2) - Jetzt verbinden

10.08.2008, aktualisiert 03.07.2010, 5047 Aufrufe, 6 Kommentare

sorry edit..
Mitglied: lowbyte1
10.08.2008 um 17:30 Uhr
hello


ich möchte einfach ein jpg file im binary mod öffnen und dann zeichen weise in ein dynamisch alloziertes array einlesen.
so das ich dann die daten (array) senden kann per send().
Bitte warten ..
Mitglied: Dani
10.08.2008 um 17:54 Uhr
Hi Lowbyte,
was genau möchtest du mit diesem Feature bezwecken? So richig den Sinn kann ich nicht verstehen. Denn es gäbt da noch der copy - Befehl. *g*


Gruss,
Dani

P.S. In Zukmunft bitte die EDIT Funktion benutzen und nicht jedes Mal einen Comment schreiben.
Bitte warten ..
Mitglied: lowbyte1
10.08.2008 um 18:24 Uhr
hello


ich schreibe ein server / client und möchte nun jpg/exe usw. vom client zu server und umgekehrt schicken.

dazu muss ich doch das file im binary mod öffnen oder?

und dan möchte ich die datei in einer while schleife in ein dynamisch alloziertes array einlesen bis EOF ereicht ist.


und dan senden mit

rc=send(socket ,send_buf ,len,0);


ps:mit txt files funktioniert das wunderbar !


lowbyte
Bitte warten ..
Mitglied: Biber
11.08.2008 um 07:39 Uhr
Moin lowbyte1,

könnte es eventuell auch der function Send() liegen... die ist doch zum Senden von Nachrichten konzipiert und eher nicht zum Transport von Binärdaten, oder?

Wenn Du unbedingt eine eigen Implementierun eines filecopy()'s machen willst, dann solltest Du eventuell erwägen, zwei Filepointer zu eröffnen.
01.
#include <stdio.h> 
02.
#include <stdlib.h> 
03.
...  
04.
.. 
05.
FILE *fIn;                   // Filepointer für zu lesendes File 
06.
FILE *fOut;                // Filepointer für zu schreibendes File 
07.
...
Grüße
Biber
Bitte warten ..
Mitglied: lowbyte1
13.08.2008 um 14:36 Uhr
helo

wie soll ich dan das file vom server auf den client übertragen ?

mit send() denke ich!

also nochmal "bin ich den so schwer zu verstehen?"

ich habe einen server und einen client geschrieben.
jetz habe ich ein befehl implementiert der sich
#get nennt.
sample= #get c:\test.txt
wen ich diesen befehl sende erkennt das der server und springt in die put_file routine.
jetz öffnet der server das angeforderte file im binary mod und liest das file bis EOF in ein dynamisch alloziertes char array.danach sende ich den char vector ala... rc = send(socket ,send_buf ,len ,0);
danach erstellt der client im binary mod ein file und liest die daten vom recv_buf, die der server gesendet hat.

wie gesagt das ganze funktioniert mit txt dateien aber nicht mit binary files.allerdings öffnet der client und der server sie dann im ascii mode.



lowbyte
Bitte warten ..
Mitglied: lowbyte1
12.12.2008 um 16:14 Uhr
helo

so nun zu meinem emaligen problem.

da man ja nicht sicher sein kann das die send funktion wirklich alles gesendet hat wegn internem buffer.
musste ich dafür eine eigene send kontroll routine schreiben.

01.
 
02.
long send_data(s_socket ,s_len ,flag) 
03.
 
04.
05.
	long rc_2=0; 
06.
	long rc_3=0; 
07.
	long total=0; 
08.
 
09.
	// enc = crypt(&send_buf[0], s_len, ENCRYPT);                                          // Bitte nicht beachten ! 
10.
	// memcpy(&send_buf[0], enc.cryptstr , s_len);                                         // S-Encryption Funktion ! 
11.
 
12.
	do 
13.
14.
		rc_2 = (s_len - rc_3);								// Ganze Len - rc_3 = rc_2 
15.
												// rc_3 beim 1.t durchlauf 0 
16.
		rc_3 = send(s_socket ,&send_buf[rc_3] ,rc_2 ,flag);				// Bei der send() funktion muss selber	 
17.
		if(rc_3==SOCKET_ERROR) {							// geprüft werden ob alle Daten des  
18.
			printf("Send Fehler :%i", WSAGetLastError());				// send buffers gesendet wurden. 
19.
			closesocket(connectedSocket);						// Die anzahl der wirklich gesendeten 
20.
			getchar();								// zeichen kann man aus dem return wert 
21.
			exit(1);								// der send funktion entnehmen. 
22.
23.
 
24.
		total += rc_3;									// Return von rc_3 an total übergeben 
25.
															 
26.
27.
	while(total!=s_len);									// Wen total ungleich gesamt len dann 
28.
												// schleife widerholen und nicht 
29.
	s_len=0;										// gesendete zeichen nach senden. 
30.
 
31.
	return total; 
32.
 
33.
34.
 
35.
 
36.
 
37.
das gegenstuck .... 
38.
 
39.
 
40.
 
41.
long recv_data(s_socket ,r_len ,flag) 
42.
 
43.
44.
	long rc_2=0; 
45.
	long rc_3=0; 
46.
	long total=0; 
47.
 
48.
	do 
49.
50.
 
51.
		rc_2 = (r_len - rc_3); 
52.
 
53.
		rc_3 = recv(s_socket ,&recv_buf[rc_3] ,rc_2 ,flag); 
54.
		if(rc_3==SOCKET_ERROR) { 
55.
			printf("Recv Fehler :%i", WSAGetLastError()); 
56.
			closesocket(connectedSocket); 
57.
			getchar(); 
58.
			exit(1); 
59.
60.
 
61.
 
62.
		total += rc_3; 
63.
																 
64.
65.
	while(total!=r_len); 
66.
 
67.
	dec = crypt(&recv_buf[0], r_len, DECRYPT); 
68.
	memcpy(&recv_buf[0], dec.cryptstr , r_len); 
69.
 
70.
	r_len=0; 
71.
 
72.
	return total; 
73.
74.
 
75.
 
76.
 

mit dieser routine wird dieses problem efizient gelöst ..
ein binary file müsste man jetz blockweise einlesen und senden, da man ja nicht zbsp. ein 3 gb. file in ein dynamisch alokiertes array einlesen kann..

an alle die sich meine up and download routine ansehen möchten .. bitte posten
für kritik bin ich immer zu haben..

lowbyte
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Update
Package Publisher - Copy has failed falscher Parameter

Frage von Belloci zum Thema Windows Update ...

Windows 10
Batch: Copy file.txt Lokaler Drucker (1)

Frage von fluluk zum Thema Windows 10 ...

VB for Applications
gelöst Reihenauswahl zur Copy-Aussage hinzufügen (6)

Frage von Anrion zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...