无亲缘关系的客户与服务器
2016-05-17 20:29
471 查看
今天给出一个简单的无亲缘关系的客户端与服务器之间的通信,客户端发送服务器端进行接收,服务器端发送客户端进行接收。
服务器端的程序:
客户端的程序:
头文件uitil.h
程序执行结果:
服务器端:
![](http://img.blog.csdn.net/20160517202750670)
客户端:
服务器端的程序:
#include"utili.h" int main(int argc,char**argv) { int write_fd; int read_fd; //mkfifo用于创建有名管道, int res = mkfifo(write_fifo_name,O_CREAT|O_EXCL|S_IRUSR|S_IWUSR); if(res == -1){ printf("make write fifo error.\n"); exit(1); } //打开文件write_fifo_name,以只读方式打开 write_fd = open(write_fifo_name,O_WRONLY); if(write_fd == -1){ printf("open write fifo error.\n"); unlink(write_fifo_name); exit(1); } printf("Wait Client Connect........\n"); //以只读方式打开read_fifo_name文件 while((read_fd = open(read_fifo_name,O_RDONLY)) == -1){ sleep(1); } printf("Client Connect Ok.\n"); char sendbuf[256]; char recvbuf[256]; while(1){ printf("Ser:>"); scanf("%s",sendbuf); //将sendbuf的内容写到write_fd中 if((strncmp(sendbuf,"quit",4)) == 0){ unlink(write_fifo_name); break; } write(write_fd,sendbuf,strlen(sendbuf) + 1); read(read_fd,recvbuf,256); printf("Cli:>%s\n",recvbuf); } return 0; }
客户端的程序:
#include"utili.h" int main(int arhc,char**argv) { int write_fd; int read_fd; int res = mkfifo(read_fifo_name,O_CREAT|O_EXCL|S_IRUSR|S_IWUSR); if(res == -1){ printf("make read fifo error.\n"); exit(1); } read_fd = open(write_fifo_name,O_RDONLY); if(read_fd == -1){ printf("Server Error.\n"); unlink(read_fifo_name); exit(1); } write_fd = open(read_fifo_name,O_WRONLY); if(write_fd == -1){ printf("Client Connect Server Error.\n"); exit(1); } char sendbuf[256]; char recvbuf[256]; while(1){ read(read_fd,recvbuf,256); printf("Ser:>%s\n",recvbuf); printf("Cli:>"); scanf("%s",sendbuf); if((strncmp(sendbuf,"quit",4)) == 0){ unlink(read_fifo_name); break; } write(write_fd,sendbuf,strlen(sendbuf) + 1); } return 0; }
头文件uitil.h
#pragma once #include<iostream> #include<unistd.h> #include<stdio.h> #include<fcntl.h> #include<sys/stat.h> #include<string.h> #include<stdlib.h> using namespace std; const char *write_fifo_name = "write_fifo"; const char *read_fifo_name = "read_fifo"; #define FILE_MODE O_CREAT|O_EXCL|S_IWUSR|S_IRUSR
程序执行结果:
服务器端:
客户端: