Unix环境编程笔记13.pdf
文本预览下载声明
day 12 1
vi socketA.c
#inckudestdio.h
#includestdlib.h
#includeunistd.h
#includestring.h
#includesys/socket.h
#includenetinet/in.h
#includearpa/inet.h
int main()
int sockfd = socket(PF_INET,SOCK_DGRAM,0);
struct sockaddr_in addr;
addr.sin_family = PF_INET ;
addr.sin_port = htons(2222);
addr.sin_addr.s_addr = inet_addr(192.168.65.128);
int res = bind(sockfd,(struct sockaddr*)addr,sizeof(buf));
char buf[100]= };
read(sockfd,buf,sizeof(buf));
printf(%s\n,buf);
close(fd);
}
vi socketB.c
#inckudestdio.h
#includestdlib.h
#includeunistd.h
#includestring.h
#includesys/socket.h
#includenetinet/in.h
#includearpa/inet.h
int main()
int sockfd = socket(PF_INET,SOCK_DGRAM,0);
struct sockaddr_in addr;
addr.sin_family = PF_INET ;
addr.sin_port = htons(2222);
//addr.sin_port = htons(他人端口);
addr.sin_addr.s_addr = inet_addr(192.168.65.128);
//addr.sin_addr.s_addr = inet_addr(他人IP );
int res = connect(sockfd,(struct sockaddr*)addr,sizeof(buf));
char* buf=hello linux;
write(sockfd,buf,sizeof(buf));
close(fd);
}
商业开发更多使用的是基于TCP和基于UDP 的开发模式
vi sema.c
#includestdio.h
#includesys/ipc.h
#includesys/sem.h
int main()
key_t key = ftok(., 100);
int semid = semget(key, 1,0666|IPC_CREAT);
if(-1 == semid)
perror(semget),exit(-1);
}
int res = semctl(semid,0,STVAL,5);
if(-1 == res) perror(semctl),exit(-1);}
printf(成功创建并初始化\n);
}
vi semb.c
#includestdio.h
#includestdlib.h
#includesys/ipc.h
#includesys/sem.h
#includeunistd.h
int main()
key_t key = ftok(., 100);
int semid = semget(key,0,0);
if(semid == -1) perror(semget),exit(-1);}
int i;
for(i=0;i 10;i++)
pid_t pid = fork();
if(pid == 0)
printf(进程%d开始启动, 请访问共享资源\n,i+ 1);
struct sembuf op;
op.semnum=0;
op.sem_op = -1;
op.sem_flag = 0;
semop(semid,op, 1);
显示全部