이 코드는 잘 작동하지만 나는이에 그것을동일한 데이터를 보내고받을 때 동일한 파일을 쓰지 않는 이유는 무엇입니까?
FILE *my_file = fopen(filename, "ab");
while(size>0){
size = recvfrom(s, buffer, 128, 0, (LPSOCKADDR) &sa_in, &senderSize);
if(size > 0)
{
fwrite(buffer, 1, size, my_file);
memset(buffer, 0x0, 128);
}
}
수정 :
FILE *my_file = fopen(filename, "ab");
while(size-128>0){
size = recvfrom(s, packet, 256, 0, (LPSOCKADDR) &sa_in, &senderSize);
buffer = getBuffer(packet); //first 128 bytes = control data
if(size-128 > 0)
{
fwrite(buffer, 1, size-128, my_file);
memset(buffer, 0x0, 128);
}
}
을하고 난 나는이 정보가 정확히 동일한 버퍼 인쇄 할 때 비록 완전히 다른 뭔가를 얻을. 대신이 점점
:
ÿØÿà JFIF H H ÿþ Content First
ÿÛ C
$.' ",#(7),01444'9=82<.342ÿÛ C
2!!22222222222222222222222222222222222222222222222222ÿÀ 2 2" ÿÄ ÿÄ 0 !1"AQaq2BC±‘’áðñÿÄ ÿÄ !Aa1ÿÚ ? ¶u¢¦¡7*à\îÜ_vÚwpOOªùjÕ[ÒR`ÜYZÕûJ;ý§ªÖ/NNÕ*¶‡b`l<µ I÷à¤}Vˆ¤ä$žvþ]©È>_Ít!®¥ÛìçÏeÆm%Ñë
W˜ájäðÅÚàÒsÂú‚GÑ8ó‚ÓÚf ·É*“%sX C»Fx뻵W/eµú‹ò•©i]bo³W
S
±[email protected] …ã9ÁIã=}ªUk¦æ¾þŸ´«ÆèB?‡p”äŒíÇ\yóëY,rº6ycÆË"•„ÂÞDvëËqÄ ¯ºÆãŽN<©YšÇk6—¢j£r-1¥¶„‡B|;ÀÆ3ô
hDí$d$¤äÒkÕЮqû‰ÑY’Ös±Ô }yóªÞãØÔg$¾íºæ¶P%:×x}7g¦}³óNâϪBYµäåÊ%@€vd§<=zgÚ¹ I…dŽI<“Èô®só”ÊŒã¦÷-²”©I<€@çʸ3Þ:”»·€¢
LüškèŸÂJ=Æà‰ u¹N¶éh0§¡¸¶ Iëúq[¯f1a¿x’ꑹö›Ê@QêîŸ_u¦I²]á5ßÉ1¦â%Èå) ÈŸLãúÕù¤¬û•”ÂîÜSÈ9%#—IÏÇ ¥³I(õèÖ7;~錣ġǵ+¾”‰Ð+ÞÕuÛ-¶ùÆ+ï¸J”ŒïÚ=:gÜžjg³ëÌ«Ö’"{ÅÙ‰ZÐâ” '
àà{S7<k©hOHy¦–C{p‡BO^>EvÈ·G~Dyv>Áð8Žß4û¤úVŽQà£FJæå}Ú¶ÇSYÌ\L;–_)
Ú@Îx<29#ø©˜Vø0íć–â¤xP„¿?沈@ õ£-Öép®V©h0¤˜±PÐHdcÅÈë““ÿ j¶Ú«-Å)]“!³6ОFXy²Ú’8ð‘Ž+NÚWc±F¶®A‘Ün Z†ÝĤ}ÕJR¢ÝQ4®Å)J‚E)J R” )J R” ÿÙ
나는이 점점 오전 :
128
╪ α
128
222222222222222222222222222222222222222222222222 └
128
1‼"AQaqü¶2BC▒æÆß≡± ─
128
J;↨²º♠¬▲╓/NN╒*╢b♂`l<☻╡
128
nQ à♀πÉ9┴Iπ=}¬‼Ukªµ╛■ƒ┤½╞ΦB?▲çpöΣîφ╟\y≤δY,r║6yc╞╦"òä┬▐DvÉδ╦q─á♣»║╞πÄN<⌐Yܶ╟k6ùój
hDφ$d∟$ñΣ▲⌂╥k╒‼¡╨«q√ë╤YÆ╓s▒╘♣
128
128
128
₧jg│δ╠½╓ÆÅ"{┼┘ëZ╨Γö
113
ê♦►@ ⌡♠ú-╓Θp«‼V⌐h0▬ñÿ▒P╨Hdc┼╚δôô
로 :
ÿØÿà 222222222222222222222222222222222222222222222222ÿÀ 1"AQaq2BC±‘’áðñÿÄ J;ý§ªÖ/NNÕ*¶‡b`l<µ [email protected] …ã9ÁIã=}ªUk¦æ¾þŸ´«ÆèB?‡p”äŒíÇ\yóëY,rº6ycÆË"•„ÂÞDvëËqÄ ¯ºÆãŽN<©YšÇk6—¢j£r-1¥¶„‡B|;ÀÆ3ô
hDí$d$¤äÒkÕЮqû‰ÑY’Ös±Ô žjg³ëÌ«Ö’"{ÅÙ‰ZÐâ” ˆ@ õ£-Öép®V©h0¤˜±PÐHdcÅÈë““ÿ
이 내가 성공적으로 바이너리 파일을 전송하고 콘솔 출력을 보시다시피, 데이터를 콘솔 형태로 쓰는 대신 폼처럼 쓰게됩니다. uld 수 있습니다.
편집 :이 다른 프로그램의 콘솔 출력
:
0
╪ α
buffer: ╪ α
0
222222222222222222222222222222222222222222222222 └
130
buffer:222222222222222222222222222222222222222222222222 └
0
1‼"AQaqü¶2BC▒æÆß≡± ─
buffer:1‼"AQaqü¶2BC▒æÆß≡± ─
0
J;↨²º♠¬▲╓/NN╒*╢b♂`l<☻╡
buffer:J;↨²º♠¬▲╓/NN╒*╢b♂`l<☻╡
0
nQ à♀πÉ9┴Iπ=}¬‼Ukªµ╛■ƒ┤½╞ΦB?▲çpöΣîφ╟\y≤δY,r║6yc╞╦"òä┬▐DvÉδ╦q─á♣»║╞πÄN<⌐Yܶ╟k6ùój
hDφ$d∟$ñΣ▲⌂╥k╒‼¡╨«q√ë╤YÆ╓s▒╘♣
buffer:nQ à♀πÉ9┴Iπ=}¬‼Ukªµ╛■ƒ┤½╞ΦB?▲çpöΣîφ╟\y≤δY,r║6yc╞╦"òä┬▐DvÉδ╦q─á♣»║╞πÄN<⌐YÜ
hDφ$d∟$ñΣ▲⌂╥k╒‼¡╨«q√ë╤YÆ╓s▒╘♣
0
buffer:
0
buffer:
0
₧jg│δ╠½╓ÆÅ"{┼┘ëZ╨Γö
buffer:₧jg│δ╠½╓ÆÅ"{┼┘ëZ╨Γö
0
ê♦►@ ⌡♠ú-╓Θp«‼V⌐h0▬ñÿ▒P╨Hdc┼╚δôô
buffer:ê♦►@ ⌡♠ú-╓Θp«‼V⌐h0▬ñÿ▒P╨Hdc┼╚δôô
.
작동하지 않습니다. 그것은 데이터를 올바르게 보내고 올바르게 쓰지 않습니다. 어떻게 든 버퍼를 변환하기 위해 변환해야한다고 생각합니다. – socket
그래서 문제가 있습니다 버퍼 = getBuffer (패킷); – dariogriffo
일 수도 있지만, 출력물을 출력 할 때 콘솔 출력은 동일합니다. – socket