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

º£Ììһɫ ·¢±íÓÚ 2007-1-8 22:26

¹ØÓÚsocket³ÌÐòµÄÒÉÎÊ

ÏÂÃæÊÇÒ»¸öºÜ¼òµ¥µÄ·þÎñÆ÷³ÌÐò£¬¿ÉÔËÐÐʱΪʲôÏÔʾbindº¯ÊýµÄ·µ»Ø½á¹ûÊǺܴóµÄÊý£¨´óÓÚ100000£©£¬Ó¦¸ÃÊÇ-1»ò0 ²Å¶Ôѽ¡£
m;} [ [mK u|'L #include <sys/types.h>d W#Z{0Z
#include <sys/socket.h>!@ ~9x[yI e9ay
#include <stdio.h>
D9B:O@)Q3P #include <sys/un.h>
^1`,Qr[3@0s;m #include <unistd.h>@o9I+xVC)c
int main():u,yT0| z#JY
{O7oq M.{8[L'tS

4as+B]/n%a     int server_sockfd,client_sockfd;
A"m)X{T"Ovmu2W     int server_len,client_len,status;1C,c)wG&~7M {
    struct sockaddr_un server_address; Iv$s1Y4nj-v)M.g
    struct sockaddr_un client_address;
t*q~&g["C-Q!V3C     1z}-m*]0lD!b
3H9]*LL*?mqt5d"i
    unlink("server_socket");
w G e0pH     server_sockfd=socket(AF_UNIX,SOCK_STREAM,0);
+p t f q g,@
'ouu;A2C}V]:],a     server_address.sun_family=AF_UNIX;a$|BC,QR;Q r
    strcpy(server_address.sun_path,"server_socket");
:LhtZ+Ju!@     server_len=sizeof(server_address);K~:E+G m Q
    bind(server_sockfd,(struct sockaddr *)&server_address,server_len);T(M0g lv3nm
    if (status == -1)
a#aR:{"I+MF/E![     perror("bind is ");4K7{BuBf W\
    printf("bind status is %d\n",status);K ] WUh] }
    listen(server_sockfd,5);
r-i0n(QE/]@*u
0kE i(jD_d;W9g //        while(1) {
D,ZAd7s;Y/i}              char ch;1S2N | p(a{(Q
             printf("server waiting\n");!d c\ d P|\-n
             client_len=sizeof(client_address);!Zf'Q;mR f,\@5Ks G
             sleep(2);xm%BtJ/UU
             client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,&client_len);
&z]~f;a ~~4F5h              read(client_sockfd,&ch,1);;]Bd{,A `y
             ch++;
sm,GA5J}z              write(client_sockfd,&ch,1);.o}.{bk*v J
             close(client_sockfd); HFK'mpxR
//              }
RA*? YUy }

flag ·¢±íÓÚ 2007-1-9 12:33

I·þÁËU£¬status²»¸³Öµ¾Í´òÓ¡³öÀ´£¬ÄãÏëÓÃÒâÄîÊõÀ´¸³ÖµÂð£¿
!U%w a*p"K;O.r#CV ²»ºÃºÃ¼ì²é´úÂë¾ÍÀ´ÕâÀïÌáÎÊ£¬ÒÔΪ±ðÈ˶¼ÊÇ´úÂë¼ì²é¹¤¾ß²»³É£¡

º£Ììһɫ ·¢±íÓÚ 2007-1-9 17:01

²ÑÀ¢°¡£¬²ÑÀ¢£¬ÊÇÎÒÌ«´ÖÐÄÁË£¬Ã»ÓÐÈÏÕæ¼ì²é£¬Õâ¾ÍÈ¥¸Ä£¬¶àл°æÖ÷£¡
pU(q3Y.R+t _ ÒÔǰÓиöÌù´úÂëµÄÌû×Ó£¬¸æËßÔõôÄܱ£³Ö´úÂëµÄÃÀ¹Û£¬ÏÖÔÚÔõôûÓÐÁËÄØ£¿

º£Ììһɫ ·¢±íÓÚ 2007-1-9 18:11

ÐÂÐ޸ĵÄ:.er]0o7@j
[QUOTE]
1vd;WC"a6Y2P #include <sys/types.h>7Cg7S$J]n
#include <sys/socket.h>
~y+j5ND4]*M'g8V7X]*T #include <stdio.h>
1^Y |Pc*b7RQ n6_t X ^ #include <sys/un.h>t+W4L^.l/jb['cV8^
#include <unistd.h>
0B5y2P#AV(x|].D AM int main()
r_z&Z*q8}:j| } { O3k ]MPw)Q
                                                                                                                                               
*T%d:` Y+Wd7J     int server_sockfd,client_sockfd;
sw l%ER,e']7O     int server_len,client_len,status;
fmM-b3ak:Cdm6D     struct sockaddr_un server_address;ozh5Q6RN'Kp
    struct sockaddr_un client_address;[Q A7Wb@h J_yP
                                                                                                                                               
t8|E*_!j                                                                                                                                                .VTb|"L-JG'v+@
//   unlink("server_socket");
C0lcLsdW-L s     server_sockfd=socket(AF_UNIX,SOCK_STREAM,0);}rG4pV9@]GO
    printf("socket return is %d\n",server_sockfd);
?9f8S$s(QM     perror("socket is");
!T [2r9Yu e     server_address.sun_family=AF_UNIX;n|x*D-q;g$M
    strcpy(server_address.sun_path,"server_socket");
:C8o:A y/Tc B     server_len=sizeof(server_address);[4J5Lw'r3m}+kzr v3D
    status = bind(server_sockfd,(struct sockaddr *)&server_address,server_len);-q{ @.U2o)Cf
    if (status == -1)*aq0s ~8PF
    perror("bind is ");*L t%Hz({
    printf("bind status is %d\n",status);.Q4T/a0O-W3|;m*fBx
    listen(server_sockfd,5);
{+TjnQi)AV1L p                                                                                                                                                
/LJ;Z*_c"U!P         while(1) {
MyE"W"g i!UF              char ch;
*Z#Vv+h5?$OsF              printf("server waiting\n");
1U6y9l gG-^n              client_len=sizeof(client_address);
lC7DUAC A,O3N#A              sleep(2);
(R+V#\9}#pDWe W              client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,&client_len);
3o8jc9k QE8j              read(client_sockfd,&ch,1);
6N;^,\ ~X`1@TZ              ch++;
"m7Ka|2o VGzn%dc              write(client_sockfd,&ch,1);)_l7i!b)DjH3Uo ?
             close(client_sockfd);1vGNm$PO
                }v T.bv;Z*z O&A nV
} fZ y]0B?

4nrv*mKA O ÔËÐзµ»ØÊÇ:~N K&f,[7Q
root@localhost cx]# ./fuwu ??6KN(c"Q(nA V
socket return is 3!d-a/Io,DhJ.Q
socket is: Success
0be I$\5h*{fR,gu bind is : Operation not permitted?U,q(Zk
bind status is -1
Qq,eRa j1YG-_ server waiting
:g]g5C/K _RP Io server waiting1z*_'o4yuJg#Y3P

'rb m%gyh#y
Oq5`%n4M'W-T^#a                                                                                                                                                #QG [MB9m
[/QUOTE]'D4yU2S1Um
bind is : Operation not permitted    ÊÇʲôÎÊÌâ?ÎÒÊÇÒÔvroot  Éí·ÝÔËÐеİ¡.

º£Ììһɫ ·¢±íÓÚ 2007-1-9 18:12

½èÓÃÒýÓõĸñʽÏÖ·¢ÉÏÈ¥°É

zhuyf0522 ·¢±íÓÚ 2007-1-26 11:28

server_sockfd=socket(AF_UNIX,SOCK_STREAM,0);
C@L5T;f,v5d8h&d Nw [ biw!j
°ÑAF_UNIX»»Ò»ÏÂÊÔÊÔ

Ò³: [1]

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