小弟学习unix不久,需要使用PF_UNIX进行两个进程通信,单位能成功,清高收指点.
源程序如下:
//Server.c
// gcc -o server server.c -lnsl -lsocket
#include
#include
#include
#include
#include
#include
main()
{
int len;
int sockfd;
char buf[30];
struct sockaddr_un SockC,sockaddr_client;
int listenfd;
len=sizeof(SockC);
sockfd=socket(PF_UNIX,SOCK_STREAM,0);
bzero(&SockC,sizeof(SockC));
SockC.sun_family=PF_UNIX;
unlink("/tmp/sss");
strcpy(SockC.sun_path,"/tmp/sss");
bind(sockfd,(struct sockaddr *)&SockC,len);
listen(sockfd,5);
listenfd=accept(sockfd,(struct sockaddr *)&sockaddr_client,&len);
read(listenfd,buf,6);
printf("%s..read..n",buf);
exit(0);
}
//Client.c
// gcc -o client client.c -lnsl -lsocket
#include
#include
#include
#include
#include
#include
main()
{
int len;
int sockfd;
char buf[30];
struct sockaddr_un SockC;
len=sizeof(SockC);
sockfd=socket(PF_UNIX,SOCK_STREAM,0);
bzero(&SockC,sizeof(SockC));
SockC.sun_family=PF_UNIX;
unlink("/tmp/sss");
strcpy(SockC.sun_path,"/tmp/sss");
if(bind(sockfd,(struct sockaddr *)&SockC,len)