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

ËêÔÂÎÞÉù ·¢±íÓÚ 2006-4-20 18:17

ÈçºÎʵÏÖ·þÎñÆ÷Óë¿Í»§¶ËÖ®¼äͨÐÅ

ҪʵÏÖÈçϹ¦ÄÜ£º
H:M4P?-d+]a1q6Uw
;V7BG c5f)n |L [font=ËÎÌå]·þÎñÆ÷°ó¶¨¶Ë¿ÚºÅΪ3000¡£[/font]| r9Wa8z d a1D Vu

7ZO+SO5r*T [TD [font=ËÎÌå]¿Í»§¶Ë·¢ËÍ¡°GET¡±Ö¸Á·þÎñÆ÷¶Ë½«×Ö·û´®¡°Welcome You·¢Ë͸ø¿Í»§¶Ë[/font]
GKp ZT4} /Wk1W p;Kg9Pl_&N8W
[font=ËÎÌå]½ÓÊÕµ½¿Í»§¶Ë·µ»ØµÄ¡°success¡±ÐÅÏ¢ºó¶Ï¿ªÁ¬½Ó¡£[/font]~Xn2WXVPj

I5r1KZ2V Lo,s9U8O [font=ËÎÌå]Íù·þÎñÆ÷µÄ3000¶Ë¿Ú·¢ËÍ¡°GET¡±Ö¸Á½ÓÊÕÐÅÏ¢£¬²¢½«½ÓÊܵ½µÄÐÅϢдÈëµ½ÎļþmsgÖС£[/font]
7Ws(jL7kG x S3E.^|,cBT _
[font=ËÎÌå]³É¹¦ºó»Ø¸´·þÎñÆ÷¡°[/font][font=Times New Roman]success[/font][font=ËÎÌå]¡±ÐÅÏ¢£¬¶Ï¿ªÁ¬½Ó¡£[/font]
:Zb ~g?
h)M-XJ_5y]g [font=ËÎÌå]³ÌÐòÈçÏ£º[/font]
tY7Q!Zim [font=ËÎÌå]·þÎñÆ÷£º[/font]R9c!@ bc Du
[font=ËÎÌå]#include <stdio.h>
R}EBV,` #include <stdlib.h>4W P-Aa7v.fx
#include <errno.h>
M.TzQ8Pyw-I5d'@L #include <string.h>
?8a)ZW8ZQ8h5rr.j #include <sys/types.h>
U u mp1G6{;c #include <netinet/in.h>~qbJ;EX
#include <sys/socket.h>YJ$d1vd:O
#include <sys/wait.h>7J+~j!tB;jM3{
#define SERVPORT 3000
SYx+_!v`"o,N.z #define BACKLOG 109Tgvl({1mI n&h
int main() {;E.`f2v5P;bJ3W9K
int sockfd, client_fd, recvbytes;
AuM/M?(S!Y'eG char buf[MAXDATASIZE];*`/`ke6_0[6O s
struct sockaddr_in my_addr;
yO-FdPY9P4U struct sockaddr_in remote_addr;
p2_&@:{ i;{4I1X0Kd if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
0y1m Lg+iagAck perror("socket....."); exit(1);
,zZ;Q0S&Q }+[Q(dJK p ]-d
my_addr.sin_family=AF_INET;Y&@rb R?x'Kj
my_addr.sin_port=htons(SERVPORT);*Q4ar Rx;Hn*C [W
my_addr.sin_addr.s_addr = INADDR_ANY;7{9HZl*yk r A
bzero(&(my_addr.sin_zero),8);uz S:iVH{
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) {
.|9]v9uton t perror("bind...");
?P3yW2bw~v3` exit(1);!n/e&JAH@E
}R8TlA1tQ,Ug
if (listen(sockfd, BACKLOG) == -1) {
Q$q | Wy h0X Iw-g o perror("listen...");\J"?e,wGX
exit(1);%i&v;w|H"G.|d%z
}b?tn3E!r/{
while(1) {
Au5V)w0| Lt sin_size = sizeof(struct sockaddr_in);
^\*~/`X:i%kh[$L_y P] if ((client_fd = accept(sockfd, (struct sockaddr *)&remote_addr, &sin_size)) == -1) {
C_+@i${YFyK#[6lM perror("accept..");
&z2]A\2O%T%p \-c continue;
7hq k0c)Z#E)K9J }
,N&AfYv:u printf("received a connection from %s\n", inet_ntoa(remote_addr.sin_addr));nd K/\wh$mh&a`

eI|vPVw9EE~ if ((recvbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1) {8b5zd G:pWi6fs+o|
perror("recv...");.[ {2Zr"kC&Xll
exit(1);9q] Ub$Ga&X
}[/font]&?4y|BV @g
[font=ËÎÌå]if (!fork()) {qq {L!g}(M6S
if (send(client_fd, "Welcome You\n", 12, 0) == -1)
OH#rI d g @9O perror("send..."); c*Tv1vPt Pxk
close(client_fd);
qp`#_4Z dGG exit(0);
i4Ipqn }q}k/[.M
if ((recvbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1) {5[%QTe ~!{EFQj
perror("recv...");
|+A m#h/`Q+sQ~ exit(1);
?P'hi6F!{ h\ };WX Z*?7F
close(client_fd);
%A@8M M3UM? }
!WkD#e!R return 0;
%~!C1w4R!`&n {q/q0x6P } [/font]
v*_GoRE*}x3?/?3@ j YH p.C)A0f2I
[font=ËÎÌå]¿Í»§¶Ë[/font]\ l&BI&yI-S
[font=ËÎÌå]#include <stdio.h>}*_(pCpfq$WH
#include <stdlib.h>
8M"nhp-zwK #include <errno.h>
P*W B9|H{,eJo0z #include <string.h>PY;tT5` Uw;F
#include <netdb.h>
YGo"|t-c5D{I@3o'l #include <sys/types.h>TIg[H8ns
#include <netinet/in.h>,x E$~:L(eZ9Ub?8}
#include <sys/socket.h>_7Z(TZ-QV\4G
#define SERVPORT 3000*U8R'`&Hqef/U3` A
#define MAXDATASIZE 100f%UX^q8V:vn
int main(int argc, char *argv[]) {
Z M,\0J:A\'Ej0J FILE *fp;!f Dw6Z/~%t;[
int sockfd, recvbytes, client_fd;
;o.bSrH3@ char buf[MAXDATASIZE];8|'S8U n'l@ F
struct hostent *host;f%{ \^z4rd/bsgs
struct sockaddr_in serv_addr;
GM m#_tNl{:y if(argc < 2) {'hJ1`fb
fprintf(stderr,"Please enter the server's hostname!\n");:h0vtIL"I
exit(1);R.UJx-a'o
}
xM?T1fd.a'H1R if((host = gethostbyname(argv[1]))==NULL) {S$B~GM1y
herror("gethostbyname...");&M~/af ]f
exit(1);%kX+o dm
}
\PZ1_#@ if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){
)AR1g4j"u~ |x perror("socket.....");
l$P)z2T5n] exit(1);
/S4Pm5Ef~'b$a },s&ydO qRe
serv_addr.sin_family = AF_INET;s iw,k:le
serv_addr.sin_port = htons(SERVPORT);
O8i@Gu serv_addr.sin_addr = *((struct in_addr *)host->h_addr);`7C$A r {#c#ke
bzero(&(serv_addr.sin_zero), 8);
-thNx)H if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1) {q.MO)`W:^I]d
perror("connect...");
a iC3w)Pc&S^ exit(1);(d ar'D Oh a
}
U8a vW _+k h if (!fork()) {;Lb[7[U G3f-~R
if (send(client_fd, "GET\n", 4, 0) == -1)
7r{Z"{P QR perror("send...");
.S4bNm:jikRW(` close(client_fd);~1l!{*Y*f c+A4A.T?4q
exit(0);+T;rqg7} C;t5`.[4[
}
j"vZ:P{ if ((recvbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1) {&xn1b+kW,ao
perror("recv...");
ww:uVk[ exit(1);z*i#|"PY2h
};V-D#it;N]1i`ME

8]kG6iZ0Ne fp=fopen("test.dat", "w");
;rp6c6KX)W fputs(buf, fp);[/font]&` eKweB
[font=ËÎÌå]if (!fork()) {
)Ck{Ht/R?1^ if (send(client_fd, "success\n", 4, 0) == -1)z8~ F8Iem y_
perror("send...");
?S(Y'WL%NP close(client_fd);
"Ci*pVX exit(0);
&Z-CUrv4q(p }1B;L W Nf
buf[recvbytes] = '\0';#w(_ `A2L!Dt S {
printf("Received: %s", buf);4U2m:}*I-vlwN}
close(sockfd);{r3bcl{,\&_6B] K!_
}[/font]\#ea1s&F5}B!p
o}Ky c:BW
[font=ËÎÌå]Çë¸ßÊÖÃÇ¿´¿´ÓÐʲôÎÊÌ⣬лл[/font]

flag ·¢±íÓÚ 2006-4-21 09:42

ÄãÓÐʲôÎÊÌâÏÈ£¿

ËêÔÂÎÞÉù ·¢±íÓÚ 2006-4-21 13:28

¾ÍÊÇÕâ¶Î³ÌÐòÄÜ·ñʵÏÖͨÐŵŦÄÜ

flag ·¢±íÓÚ 2006-4-21 13:51

¹þ£¬Äܲ»ÄÜÄã×Ô¼º×ö²»ÁËÖ÷Âð£¿ÊÇÄãÒªÀ´ÕâÀïÎÊÎÊÌ⣬ÇëÈÏÕæÒ»µã¡£

Ò³: [1]

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