当前位置: 首页 > news >正文

怎样与其它网站做友情链接东莞关键词排名推广

怎样与其它网站做友情链接,东莞关键词排名推广,重庆外贸网站建设,dell公司网站设计特色概述 什么是UNIX域套接字: UNIX域套接字是使用套接字进行本地通信,TCP/UDP是使用套接字进行网络通信。UNIX域套接字也有域流式套接字和域数据报套接字,这两种形式域TCP/UDP的含义类似,使用步骤也完全一致。 bind时绑定的结构体…

概述 

什么是UNIX域套接字:

UNIX域套接字是使用套接字进行本地通信,TCP/UDP是使用套接字进行网络通信。UNIX域套接字也有域流式套接字和域数据报套接字,这两种形式域TCP/UDP的含义类似,使用步骤也完全一致。

bind时绑定的结构体类型:

struct sockaddr_un {sa_family_t sun_family;   //协议类型char sun_path[104];       //套接字文件路径
};

域流式套接字

域流式套接字的创建步骤与TCP创建步骤一致。

server.c代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/socket.h>
#include <signal.h>
#include <sys/wait.h>#define UNIX_PATH "./UNIX"
void Set_SIGCHLD(void);
void SIGCHLD_Handler(int sig);
int main(int argc ,char** argv){int fd;struct sockaddr_un addr;//判断参数有效性if(argc != 2){printf("param err\n");printf("%s<unix path>\n",argv[0]);return -1;}printf("unix path = %s\n",argv[1]);//1.创建socketif((fd=socket(AF_UNIX,SOCK_STREAM,0))<0){//流式UNIXperror("socket");return -1;}//2.绑定addr.sun_family = AF_UNIX;    				  			//UNIXstrncpy(addr.sun_path,argv[1],sizeof(addr.sun_path)); 	//UNIX文件路径if(bind(fd,(struct sockaddr*)&addr,sizeof(struct sockaddr_un)) == -1){perror("bind");return -1;}//3.监听socketif(listen(fd,5) == -1){ 	//允许最多接入5个客户端perror("listen");return -1;}//多进程并发pid_t pid;int newFd;struct sockaddr_un newAddr;socklen_t newAddrlen;Set_SIGCHLD();//以信号方式回收子进程while(1){//4.接受客户端链接if((newFd = accept(fd,(struct sockaddr*)&newAddr,&newAddrlen)) < 0){perror("accept");return -1;}//父进程处理接收客户端链接的问题//子进程处理与客户端交互的问题if((pid=fork()) == -1){perror("fork");return -1;}else if(pid == 0){char buf[100] = {0};close(fd);//对于子进程,socket返回的fd没有用//5.数据交互while(1){memset(buf,0,sizeof(buf));write(newFd,"server",strlen("server\n"));read(newFd,buf,sizeof(buf)-1);printf("read:%s\n",buf);sleep(1);}exit(0);}else{close(newFd);//对于父进程,accept返回的newFd没有用}}remove(argv[1]);close(fd);return 0;
}
void Set_SIGCHLD(void){struct sigaction act;act.sa_handler = SIGCHLD_Handler;sigemptyset(&act.sa_mask);act.sa_flags = SA_RESTART;//让因为信号而终止的系统调用继续运行if(sigaction(SIGCHLD,&act,NULL) != 0){perror("sigaction");}
}
void SIGCHLD_Handler(int sig){int wstatus;waitpid(-1,&wstatus,WNOHANG);if(WIFEXITED(wstatus)){      //判断子进程是否正常退出printf("子进程的返回值为%d\n",WEXITSTATUS(wstatus));}else{printf("子进程是否被信号结束%d\n",WIFSIGNALED(wstatus));printf("结束子进程的信号类型%d\n",WTERMSIG(wstatus));}
}

client.c代码 :

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/socket.h>int main(int argc,char** argv){int fd;struct sockaddr_un addr;//判断参数有效性if(argc != 2){printf("param err\n");printf("%s<unix path>\n",argv[0]);return -1;}printf("unix path = %s\n",argv[1]);//1.创建socketif((fd=socket(AF_UNIX,SOCK_STREAM,0))<0){//流式UNIXperror("socket");return -1;}//2.链接服务器addr.sun_family = AF_UNIX;    				  			//UNIXstrncpy(addr.sun_path,argv[1],sizeof(addr.sun_path)); 	//UNIX文件路径if(connect(fd,(struct sockaddr*)&addr,sizeof(struct sockaddr_un)) == -1){perror("connect");return -1;}//3.数据交互char buf[100] = {0};while(1){if(read(fd,buf,sizeof(buf)-1) > 0){printf("read:%s\n",buf);write(fd,"client:i read it\n",strlen("client:i read it\n"));}}close(fd);return 0;
}

域数据报套接字

server.c

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/socket.h>int main(int argc,char** argv){int fd;struct sockaddr_un addr;//判断参数有效性if(argc != 2){printf("param err\n");printf("%s<unix path>\n",argv[0]);return -1;}printf("unix path = %s\n",argv[1]);//1.创建socketif((fd=socket(AF_UNIX,SOCK_DGRAM,0))<0){//数据报UNIXperror("socket");return -1;}//2.绑定IP、端口号addr.sun_family = AF_UNIX;    				  			//UNIXstrncpy(addr.sun_path,argv[1],sizeof(addr.sun_path)); 	//UNIX文件路径if(bind(fd,(struct sockaddr*)&addr,sizeof(struct sockaddr_un)) == -1){perror("bind");return -1;}//3.数据交互char buf[100] = {0};struct sockaddr_un src_addr;socklen_t src_addrlen;while(1){memset(buf,0,sizeof(buf));if(recvfrom(fd,buf,sizeof(buf)-1,0,(struct sockaddr*)&src_addr,&src_addrlen) > 0){printf("read:%s\n",buf);}	}close(fd);return 0;
}

client.c

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/socket.h>int main(int argc,char** argv){int fd;struct sockaddr_un addr;//判断参数有效性if(argc != 2){printf("param err\n");printf("%s<unix path>\n",argv[0]);return -1;}printf("unix path = %s\n",argv[1]);//1.创建socketif((fd=socket(AF_UNIX,SOCK_DGRAM,0))<0){//数据报UNIXperror("socket");return -1;}//2.设置要发送到的服务器信息addr.sun_family = AF_UNIX;    				  			//UNIXstrncpy(addr.sun_path,argv[1],sizeof(addr.sun_path)); 	//UNIX文件路径//3.数据交互while(1){sendto(fd,"cilent",strlen("cilent"),0,(struct sockaddr*)&addr,sizeof(addr));sleep(1);}close(fd);return 0;
}

http://www.tj-hxxt.cn/news/53301.html

相关文章:

  • 绵阳哪个网站做外卖做的好十大销售管理软件排行榜
  • 百年建筑网站个人怎么做推广
  • 网站开发细节百度推广案例及效果
  • 档案安全网站安全建设外包
  • 建网站需要多大的宽带seo 优化是什么
  • 国外做情趣用品比较有名的网站百度公司销售卖什么的
  • 两个网站合并建设实施方案crm管理系统
  • 莆田 做网站的公司安卓优化大师官网
  • 佛山专业网站建设价格数据交换平台
  • 企业网站wap源码杭州谷歌seo公司
  • 香港特别行政区直辖于百度seo优化规则
  • 网站优化费用国外网站搭建
  • 南通丰汇建设有限公司公司网站如何提高网站在百度的排名
  • 书城网站开发的参考文献网站设计费用
  • 有什么网站可以做婚庆视频seo数据是什么
  • 企业网站建设哪家公司好漯河网站seo
  • 自己动手做衣服网站湖南网站推广优化
  • 济南网站seo报价百度收录网站入口
  • 租服务器网站郑州网站建设推广有限公司
  • 公司的网站都是谁在维护网络seo优化公司
  • 重庆在线开放做搜索引擎优化的企业
  • 求做网站的镇江网页设计
  • 简述网站一般建设的流程图班级优化大师头像
  • 什邡网站建设优化营商环境心得体会
  • html5网站模板移动端搜索网站大全
  • 母婴网站 模板首页
  • 包头网站设计推广最好的推广平台是什么软件
  • 经典vi设计案例分析青海网站seo
  • 软件科技有限公司如何进行seo搜索引擎优化
  • 手机网站 案例网搜网