Exemplo n.º 1
0
void func(){
	socklen_t len = sizeof(cli);
	int newfd  = accept(fd2,(struct sockaddr*)&cli,&len);
	printf("to give permission press Y else N:\n");
    	char ch[1];
    	int num =read(0,ch,1);
    	write(newfd,ch,num);
    	if(ch[0]=='Y'){
    	pass_fd(newfd,fd);
    	exit(0);
    	}
}
Exemplo n.º 2
0
int main(int argc,char *argv[]){
	struct sockaddr_un sa,cli;
	struct sockaddr_in s,c;
	struct msghdr msg;
	int i,j,ufd,sfd,fd;
	ufd=socket(AF_UNIX,SOCK_STREAM,0);
	sa.sun_family=AF_UNIX;	
	char b[]="ff";
	unlink(b);
	strncpy(sa.sun_path,b,sizeof(sa.sun_path)-1);
	bind(ufd,(struct sockaddr*)&sa,sizeof(sa));
	perror("unix bind");
	sfd=socket(AF_INET,SOCK_STREAM,0);
	s.sin_family=AF_INET;
	s.sin_addr.s_addr=htonl(INADDR_ANY);
	s.sin_port=htons(2367);
	bind(sfd,(struct sockaddr*)&s,sizeof(s));
	perror("tcp bind");
	listen(sfd,5);
	socklen_t t;
	t=sizeof(t);
	fd=accept(sfd,(struct sockaddr*)&c,&t);
	perror("accept");
	printf("accepted in s1\n");
	char buff[100];
	i=recv(fd,buff,100,0);
	write(1,buff,i);
	printf("s2 starts\n");
	t=sizeof(sa);
	connect(ufd,(struct sockaddr*)&sa,sizeof(sa));
	perror("connect");
	bzero(&msg,sizeof(msg));
	printf("fd is:%d\n",fd);
	pass_fd(ufd,fd);
	close(fd);
	return 0;
}