LinuxÒÁµéÔ°ÂÛ̳'s Archiver

ms93765555 ·¢±íÓÚ 2007-4-21 01:49

ÇóÖú!C±à³ÌÎÊÌâ!!

ÇóÖú¸ßÊÖ°ïÎÒ¿´ÏÂÏÂÃæµÄ´úÂë(ÂÒÁ˵ã)
8v/d IzL [COLOR=#22229c]//client[/COLOR]ZkW%Aaz
[COLOR=#22229c]#include <unistd.h>[/COLOR]
{Wj l|D"M [COLOR=#22229c]#include <netinet/in.h>[/COLOR]
8{nlyIR R(w [COLOR=#22229c]#include <arpa/inet.h>[/COLOR]
#ws @yw:cFp'Tf [COLOR=#22229c]#include <netdb.h>[/COLOR]
'aZ~1p2V\/c [COLOR=#22229c]#include <stdlib.h>[/COLOR]
;Y/[d ]_^Kg9N*S [COLOR=#22229c]#include <SDL.h>[/COLOR],wO&m'r VdF[,HXW
[COLOR=#22229c]#include <SDL_image.h>[/COLOR]8oc%c4^&]
[COLOR=#22229c]#define SER_PORT 1500[/COLOR]4jvX,];T'pc;e
[COLOR=#22229c]#define MAX_LEN 261[/COLOR]A8WRl ^o(_
[COLOR=#22229c]void ShowJpg(char *file, SDL_Surface *screen, int x, int y)[/COLOR]
+j(?4E ^7U:m [COLOR=#22229c]{[/COLOR]4n+v;G r J b8[${
[COLOR=#22229c]SDL_Surface *image;[/COLOR]+w/bj^M$Zl
[COLOR=#22229c]SDL_Rect dest;[/COLOR]T T?axRN

,pO]LI IU [COLOR=#22229c]image = IMG_Load(file);[/COLOR]0G#Pta}0N)~:~Od
[COLOR=#22229c]if ( image == NULL ) {[/COLOR]
9^o@ Y[+D._Q~V [COLOR=#22229c]fprintf(stderr, "ÎÞ·¨¼ÓÔØ %s: %s\n", file, SDL_GetError());[/COLOR]9tHK:^.ld
[COLOR=#22229c]return;[/COLOR]
Y{ \1Y.h"W [COLOR=#22229c]}[/COLOR]
gW+rA\AX*m
I-K#G @4Pc6y [COLOR=#22229c]dest.x = x;[/COLOR]
}TLqI ]#_tH [COLOR=#22229c]dest.y = y;[/COLOR]:l+G/@rcX*o
[COLOR=#22229c]dest.w = image->w;[/COLOR]
xp*MWN8`9t)A m [COLOR=#22229c]dest.h = image->h;[/COLOR]K3[;|\'u!Ai
[COLOR=#22229c]SDL_BlitSurface(image, NULL, screen, &dest);[/COLOR]
^.eFDe;~ [COLOR=#22229c]SDL_UpdateRects(screen, 1, &dest);[/COLOR]
.P Xl5P:n@TK+QZ [COLOR=#22229c]}[/COLOR]
7}:p9i5Rj5IoM(u [COLOR=#22229c]int main(int argc,char **argv)[/COLOR]G;LX3PY;^PC+o
[COLOR=#22229c]{[/COLOR]"oT*g9Uv'T
[COLOR=#22229c]int sd;[/COLOR]*e5p-Q)oY8}sI!Oc
[COLOR=#22229c]int rn;[/COLOR]
&Nh-y zt5@9_` [COLOR=#22229c]int i=1;[/COLOR]
1V*c U` H@ C.O [COLOR=#22229c]int bn;[/COLOR]
7|*z+qe {S [COLOR=#22229c]struct sockaddr_in client,server;[/COLOR]
M V,_ai [COLOR=#22229c]struct hostent *h;[/COLOR]}M,^0t!m u+r+a2l
[COLOR=#22229c]char buf[MAX_LEN];[/COLOR]%J@$Ul unH
[COLOR=#22229c]FILE *fq;[/COLOR]6Pi7TP-JX
[COLOR=#22229c]char ch;[/COLOR]
(OJJ(N{'Q*V jFY.O5` [COLOR=#22229c]sd=socket(AF_INET,SOCK_STREAM,0);[/COLOR](N$Pb&mhdc
[COLOR=#22229c]if(sd < 0)[/COLOR]
;]Bg#_s [COLOR=#22229c]{[/COLOR]!rF/@5@e0i
[COLOR=#22229c]printf("Creating socket error!\n");[/COLOR]
DR&J%h)W [COLOR=#22229c]exit(1);[/COLOR]4Zi*[M$F0P/?NXh8`
[COLOR=#22229c]}[/COLOR]9XHtHpd
[COLOR=#22229c]if(argc < 2)[/COLOR]
9~R,d4s k [COLOR=#22229c]{[/COLOR]j4GL'T:l_Y
[COLOR=#22229c]printf("Not enough parameter!\n");[/COLOR]D#vVu{"dXe
[COLOR=#22229c]exit(1);[/COLOR]D)Tg \N+rIy
[COLOR=#22229c]}[/COLOR]
`Uo*e x [COLOR=#22229c]h=gethostbyname(argv[1]);[/COLOR]G;D2R9Q%K[ [O
[COLOR=#22229c]if(h == NULL)[/COLOR]*nf`1g2Uj5X-M'|s
[COLOR=#22229c]{[/COLOR]hh%e9Ku at
[COLOR=#22229c]printf("Can't get hostname");[/COLOR]q xn!|QKhPM
[COLOR=#22229c]exit(1);[/COLOR]L[ p^&HSW
[COLOR=#22229c]}[/COLOR]
.ZL |'LzG [COLOR=#22229c]bzero(&server,sizeof(server));[/COLOR]'B1c"x*Gr1|W Tp
[COLOR=#22229c]server.sin_family=h->h_addrtype;[/COLOR]
(rNj"B'rw/lK;z [COLOR=#22229c]server.sin_port=htons(SER_PORT);[/COLOR]S1l}3Yq!m
[COLOR=#22229c]server.sin_addr= *((struct in_addr *)h->h_addr);[/COLOR].YYCqw'GG6qH7^
[COLOR=#22229c]int opt=1;[/COLOR]
R br XW^)^3]8N)F |-{ [COLOR=#22229c]setsockopt(sd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));[/COLOR]+]\hJ W.S^9a
[COLOR=#22229c]if(connect(sd,(struct sockaddr *)&server,sizeof(server)) < 0)[/COLOR]1xl4kx"]"_`!}
[COLOR=#22229c]{[/COLOR]
|ha'lm [COLOR=#22229c]printf("Connect Error!\n");[/COLOR]
5Q&O~_,w O [COLOR=#22229c]exit(1);[/COLOR](C~,@:m8Sk4Kegu j'd
[COLOR=#22229c]}[/COLOR]7Pjo nqf*^
[COLOR=#22229c]SDL_Surface *screen;[/COLOR]
Z*{@6_l0B J]:@x [COLOR=#22229c]Uint32 color;[/COLOR]
4r-@4G7~N z } [COLOR=#22229c]if ( SDL_Init( SDL_INIT_VIDEO) < 0 ) {[/COLOR] q v9U/|%m4|+\h"_
[COLOR=#22229c]fprintf(stderr, "ÎÞ·¨³õʼ»¯SDL: %s\n", SDL_GetError());[/COLOR]G0J6in#Y+rr(x,A
[COLOR=#22229c]exit(1);[/COLOR]
#k"];c\zU| [COLOR=#22229c]}[/COLOR]
3nn4t+a l [COLOR=#22229c]screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE); /*640 X 480 X 16λɫ*/[/COLOR]sug G*\9WQ%a!g|`e$W7X
[COLOR=#22229c]if ( screen == NULL ) {[/COLOR]d],c+O1UZ*D
[COLOR=#22229c]fprintf(stderr, "ÎÞ·¨ÉèÖÃ640x480x16λɫµÄÊÓÆµÄ£Ê½£º%s\n", SDL_GetError());[/COLOR]nesO2y7p'r*VoZq
[COLOR=#22229c]exit(1);[/COLOR]
sCuc h*UQE [COLOR=#22229c]}[/COLOR]*Y4I9}-i;u x:M
[COLOR=#22229c]atexit(SDL_Quit);[/COLOR]
_#DA2q2|7z&i I [COLOR=#22229c]while(1)[/COLOR]
W Q `ZA[-M*d [COLOR=#22229c]{ [/COLOR]QLtD:r%P[V
[COLOR=#22229c]fq=fopen("2new.jpg","w+b");[/COLOR]&a7K9H+A8@w'n*{a
[COLOR=#22229c]if(fq == NULL)[/COLOR]
zcDV7N-s [COLOR=#22229c]{ [/COLOR]
7D)jR*qH&Y)|"` [COLOR=#22229c]printf("File open error!\n");[/COLOR]
c5A+C&mg*s0M [COLOR=#22229c]exit(1);[/COLOR]2N){,F({8T BvG
[COLOR=#22229c]} [/COLOR]TT P`*`%O A
[COLOR=#22229c]while(1) [/COLOR])rh:sg"v0O*q%Ka:_
[COLOR=#22229c]{[/COLOR]U|ge2G8{H,X
[COLOR=#22229c]rn=recv(sd,buf,MAX_LEN,0);[/COLOR](Pj-EQthK
[COLOR=#22229c]if(rn <= 0) [/COLOR]
9Z ?Q&g{7w [COLOR=#22229c]{[/COLOR]
x8E5N Zp [COLOR=#22229c]printf("Can't recieve file!\n");[/COLOR]
Adg(H0}_8b g!lU [COLOR=#22229c]exit(1);[/COLOR]
Nt7{J9o[ [COLOR=#22229c]}[/COLOR]V ?+Q hk1i$Z.P T
[COLOR=#22229c]buf[rn]='\0';[/COLOR]
+mJ6UZ#y uY|"d [COLOR=#22229c]if(strcmp(buf,"File send over!") == 0) //ÅжÏÊÇ·ñ½áÊø[/COLOR]q `$F(^:Sh%`
[COLOR=#22229c]{[/COLOR]
2i7l%_9\!V7m [COLOR=#22229c]printf("-----: %s\n",buf);[/COLOR]%qq3Qq Lg Q H e k~
[COLOR=#22229c]break;[/COLOR] Qq S2\:Zr'i1_N
[COLOR=#22229c]}[/COLOR]
4?6h5|#g|(b$q1O [COLOR=#22229c]if(rn != 0)[/COLOR]H+|zX#f S4z T
[COLOR=#22229c]fwrite(buf,10,26,fq);[/COLOR](e)C-R2f#^IK
[COLOR=#22229c]//printf("get file:%s\n",buf); //---2[/COLOR]'J L7Nb \
[COLOR=#22229c]bzero(buf,sizeof(buf)); [/COLOR]!P:m!I1E2xGD-p A`
[COLOR=#22229c]bn=send(sd,&i,sizeof(int),0); [/COLOR]
(J/j?/Ccs_3}3S(| [COLOR=#22229c]if ( i==1 ) [/COLOR] \t[U t(t2upn
[COLOR=#22229c]{ [/COLOR]
6C-F\w1o9ix1RM C [COLOR=#22229c]i=2; [/COLOR]s `k!I@:?f
[COLOR=#22229c]break; [/COLOR]}R+yF;Mi
[COLOR=#22229c]} [/COLOR]x9h1K-q$fL7L$q
[COLOR=#22229c]if ( i==2 ) [/COLOR]
3H8ve6M:gF4NF [COLOR=#22229c]{ [/COLOR] O,|/JXG0@$~;d4fD
[COLOR=#22229c]i=1; [/COLOR]
phg9x*^j(Tc$a Gp"G [COLOR=#22229c]break; [/COLOR] WL(s7aJ2g`-k4Bl
[COLOR=#22229c]}[/COLOR]^ ie}5yB
[COLOR=#22229c]}[/COLOR]O0@Q O#R:|dhB,O
[COLOR=#22229c]fclose(fq);[/COLOR] V8F6A"}7_*E5l
[COLOR=#22229c]ShowJpg("2new.jpg",screen,0,0);[/COLOR]1nY*J!}r)R'_3}!m
[COLOR=#22229c]}[/COLOR]
^x;H`?2c[MPV? [COLOR=#22229c]int done=0; while (!done)[/COLOR]r(`y.M B D
[COLOR=#22229c]{[/COLOR]!b`f$N;]
[COLOR=#22229c]SDL_Event event; [/COLOR]
7fW-c w5F tD7B D | [COLOR=#22229c]while (SDL_PollEvent (&event))[/COLOR]4Dc ?/Y!M+P ~XkZ
[COLOR=#22229c]{[/COLOR] wQ"@;\[Ie#d
[COLOR=#22229c]switch (event.type)[/COLOR]
K,mI#nB [COLOR=#22229c]{[/COLOR]7t3C(UW)` | v
[COLOR=#22229c]case SDL_KEYDOWN:[/COLOR]
O"I J2YN"T]%AC2h [COLOR=#22229c]break;[/COLOR]PDI\$Of
[COLOR=#22229c]case SDL_QUIT:[/COLOR] v eE*]+wb
[COLOR=#22229c]done = 1;[/COLOR].j2mNc k k$I0qP^wz
[COLOR=#22229c]break;[/COLOR]
l\J$n#adA#|/]"U [COLOR=#22229c]default:[/COLOR]
E/F-AN _o G [COLOR=#22229c]break;[/COLOR]q]8rAzM
[COLOR=#22229c]}[/COLOR] Q3MC$k"I)J3jAw
[COLOR=#22229c]}[/COLOR]
_p0u iGIpyxD [COLOR=#22229c]} [/COLOR]
:W[(JiZW)W G5Z,r [COLOR=#22229c]close(sd);[/COLOR](uA:g)j3g/V
[COLOR=#22229c]return 0;[/COLOR]Oq7? ?,aJ
[COLOR=#22229c]}[/COLOR]
9Hp_R%@nk1Q
xXv;c"R [ //serverd8A0HI_#C[
#include <sys/socket.h>
rJ5}_WrY2Y2nk;| #include <sys/types.h>
L&T3E!U7a O #include <stdlib.h> u0A$n:p{,H ~&s1P
#include <stdio.h>
F1p`5B `!] #include <string.h>5w:nQe(T?:g
#include <unistd.h>5Ax,b,AI$k|*g
#include <error.h>DPi K0e C T,L
#include <netinet/in.h>"x*m?"R5|n!Ol Q!mi2a
#include <arpa/inet.h>/yl8T5[1Fm9_
#define SER_PORT 1500
x&LZ9OT #define MAX_LEN 261 E(s)al7m
int main(int argc,char **argv)
%VqV9NK {
;[&r]5M0R1@[w int listensd,connectsd;UB\DWY E
struct sockaddr_in server;
,}-Yk+I Y struct sockaddr_in client;
/rasF)xf v1Qm)D char buf[MAX_LEN]; ?x$]Q'Vf1x/U
FILE *fp;p:V.`6i{.T4c#t8\
char end[]="File send over!";
tb oL^ @@ int i=1;
_ u+@LY2I*Lo V listensd=socket(AF_INET,SOCK_STREAM,0);
ZfE9y?7zD if(listensd < 0)
#l)H7XjzX P u0S3d {
UP sH RzK9LcN perror("Creating socket failed:");
P+cAr#H3N7Pc,[X/W exit(1);
$ZL8eKz2O1W^*{_Sg }
V%IT:I[#q#r5a6H
!{7z sB/D%z0FJ}!] int opt=1;1l K g^[D
setsockopt(listensd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));I DA0Nj0DH S
bzero(&server,sizeof(server));$A2_.~-JnFPWw ~
server.sin_family = AF_INET;s k.H+HcA
server.sin_port = htons(SER_PORT);,a GM+[3y8Q{
server.sin_addr.s_addr = htonl(INADDR_ANY);
wX Cv9FUp if(bind(listensd,(struct sockaddr *)&server,sizeof(server)) < 0)
/R#d9B{];?j;e {
_Et'cky/p perror("Bind error.");njs3ck gnN5r
exit(1);
Jo2g] qcOii },rS#_"I/S4E
if(listen(listensd,5) == -1)pz"i:Z&r.{
{"G:kX8^ hC4c2@h
perror("listen() error\n");
&? hC+ytd GM0h4_ exit(1);"R4Hz!~_
}:Qd8s:C7c]UM

9F'|og }.E8T3oUt int rn ;
j"g(O.a3Y KN int sin_len=sizeof(client);+@;r By;?T{Ch2_
if((connectsd = accept(listensd,(struct sockaddr *)&client,&sin_len)) < 0)'V?.^0o8\7j!u-@
{
`m9@d,pgV printf("Can't accept the request!\n");V[eL.x yt
exit(1);
EaM4t4Z } 7T E-[ o!Q2KCnb"ac v
fp=fopen("1.jpg","rb");
[J7u5]v'F X? if( fp == NULL )
7u9OVWivr {
EY)gKTZV printf("File open error !\n");
_y_O+k.`@_ exit(1);
Hwa_(Fb4{ } bzero(buf,sizeof(buf));
)|#Z6wdZ/j@k l g1S8@J_h
while(fread(buf,10,26,fp))(l HWui#p:P
{ [|Y RywQ
//printf("readed is : %s\n",buf); //-------1
1L:V;?(ISwK~ rn=send(connectsd,buf,MAX_LEN,0);
k;K,\[Z&sn if(rn < 0)
s(|"q*DP!ms WD {_S+j{pl(V\cU
printf("File send error!\n");
~j6]i^/I#qD exit(1);U(I @D[y:d q {3v
}W)z lr'T.UN&@S
bzero(buf,sizeof(buf));
TV+x z n } -n bOc3C!tY`
rn=send(connectsd,end,strlen(end),0); //·¢ËÍÒ»¸ö½áÊøÓï¾ä!
@:z7E WVNGS if(rn < 0)3zHa2ww u!x5yu^
{
_F Xd!|0x8]\&} printf("ending send Error!\n");n&}$^'z@~
exit(1);wE v}2?
}
$r Y}U2t_ X3yp printf("send end to the server:%s\n",end);
j)mQ#KbT&P h*lHy4@Hb1\~?
fclose(fp);
(l J[Aw while(1)
v a1F|I(j3yH4_U {
r@5YZ!Lc[6q _jJ int i; z\]8teUI3?t+I
int bn; gsrP c+?)Ku
bn=recv(connectsd,&i,sizeof(int),0); 6g} _9~zP/b
if ( i==1 ) k u c l4zzic;Q&[
{
^3S g3?$`!G!SX V'L:v+r fp=fopen("2.jpg","rb");
)cN/u|1s+D7nH if( fp == NULL )
,_&Dtd_9k~a {
0xD&Y(d\/wD%qx printf("File open error !\n");
~%E;XiV*c z exit(1);Ci~ NK.f
} _{aEV6LfS$v,X){
bzero(buf,sizeof(buf));
P&hh\&q c+g)LU )VL%ULx1n
while(fread(buf,10,26,fp))ey/lmBkRr~4?? K
{
3P\;Fa"u;\ w*cC:f.~ //printf("readed is : %s\n",buf); //-------1
3d b D&qj_ rn=send(connectsd,buf,MAX_LEN,0);e7PY{d cq
if(rn < 0)
9Ikl,Wx9@ {
%FU,j8{)D6O0g O printf("File send error!\n");/F7}rOE%\]8KI3j
exit(1);
$iW#f'`]$Xlj }4kd bc {V(Q;K3~
bzero(buf,sizeof(buf));]0vDOT
}
:w _&`[D2ZO$N rn=send(connectsd,end,strlen(end),0); //·¢ËÍÒ»¸ö½áÊøÓï¾ä!
*hckE'V$y if(rn < 0).^j_#|#JT7c7e
{
S~e+@/u+JV%W inJ&P ^V printf("ending send Error!\n");
+lb N"`~^'v}2D Oc*Z exit(1);&v9qkdE[R C
}
Hy%A+qrpi6Mf;Q'T printf("send end to the server:%s\n",end);:Elo _\1B
fclose(fp); W3Gg:~.^0We"IEf]
} `Q"rr(c4Oi-y
if( i==2 )
7BHK3A pBPP {
s7b%c}e2S%V fp=fopen("1.jpg","rb");.b Qv:[&V];C
if( fp == NULL )
*nDhN$D6] {4Ab3u@SbH_.P
printf("File open error !\n");+_B.O)?BE0Z`
exit(1);
i+F2hgV6OWo }
,Xyi`p bzero(buf,sizeof(buf));
t'T'N8g3R [
bMf ` R%Q z sJEt while(fread(buf,10,26,fp)) [s Ms [ V(|
{
`.Q:V7a*o //printf("readed is : %s\n",buf); //-------1
k7| Lx t!?M/Xt rn=send(connectsd,buf,MAX_LEN,0);,vJ(E&R x$y*} j
if(rn < 0)
{+X e4^a _{ {S u3Z(b(pE0BV
printf("File send error!\n");
+Ufc6]_9P)} exit(1);tv3D+UL0~
}WQOUYG
bzero(buf,sizeof(buf));
1X/\\;r jq7a:A/E } TEN%_c$ws
rn=send(connectsd,end,strlen(end),0); //·¢ËÍÒ»¸ö½áÊøÓï¾ä!
C]!nb7lPCdcf if(rn < 0)
hL$r-wG {3e/Z(st TlR;G/p
printf("ending send Error!\n");}m.gL v5z
exit(1);(cJ v.Q._ F4A
}(a~B&tLk)[gu,NV
printf("send end to the server:%s\n",end);
*GX$At S
0_j `RFQ fclose(fp); qe"x qw:g/^#dd
}
[6y4U.zo,R#i)TK}#L }
df[T`+? close(connectsd);
[9f&Tr [A pS close(listensd);-l,rl}F7K(d9Z
return 0;
#m%hOO#C,kc }
`pe:dmM\p(PP.F
S7D7L3H;Q,rdQM2KG ÏëÄ£Äâ¸ö·þÎñ¶ËÑ­»··¢ËÍͼƬ,¿Í»§¶Ë½ÓÊܲ¢ÏÔʾ.µ«¿Í»§¶ËÉú³ÉµÄͼƬÎÞ·¨ÏÔʾ.ÇëÀÏÄñ°ïÎÒ¿´¿´°¡.ÄܰïÎҸĸÄ×îºÃÁË. D#m*J.PVFN&K
Õâ¸ö¾ÍÊÇСµÜµÄ±ÏÒµÉè¼Æ¿ÎÌâ°¡``¹ý¼¸Ìì¾ÍÒª½»ÁË``¼±°¡!!

flag ·¢±íÓÚ 2007-4-21 13:26

´«Îļþ£¿ÎļþÊÇ·ñ´«ÍêÕûÁË£¿ÊÇ·ñ°´ÕÕÔ­À´¸ñʽ´«µÄ£¿×Ô¼ºÏÈÕÒÕÒÔ­Òò°¡

ms93765555 ·¢±íÓÚ 2007-4-21 17:44

ÕÒÁ˶î``ÕÒÁ˰ëÌì¶¼ÕÒ²»µ½2g1h8\6pYS
6`%v[ k._{|M
ËùÒÔ²ÅÀ´ÇóÖúµÄ

viking00000 ·¢±íÓÚ 2007-5-16 21:32

ÄãµÄͼÏñ´¦ÀíÍ·ÎļþÊÇ»ØÊÂ#include <SDL_image.h>
PM/{y ^j D k ÊÇ×Ô¼º¶¨ÒåµÄ°Â~~?
]$Pg6KF4{7z ²»ÊÇÓ¦¸Ã//#include <SDL/SDL.h>Å·,*v` C`Z.nK Vv
ͼÐδ¦Àí²»Ôõô¶®,±àÒ벻ͨ¹ý

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.