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

天津建设招标网站景观设计公司有哪些

天津建设招标网站,景观设计公司有哪些,公关公司的主要业务,之江汇学校网站建设1.概述 本地套接字 1:作用:本地的进程间通信 2.有关系的进程间通信 3.没有关系的进程间的通信 本地套结字实现流程和网络套结字实现相似,一般采用tcp 二.通信流程 本地套结字通信的流程:1.服务器端:1.1 int fd socket(AF_UNIX/AF_LOCAL,…

1.概述

本地套接字
    1:作用:本地的进程间通信
    2.有关系的进程间通信
    3.没有关系的进程间的通信
本地套结字实现流程和网络套结字实现相似,一般采用tcp
 

 二.通信流程

本地套结字通信的流程:1.服务器端:1.1 int fd = socket(AF_UNIX/AF_LOCAL,SOCKET_STREAM,0)1.2 监听的套结字需要绑定本地的套结字文件struct sockaddr_un addr;绑定成功后指定的sun_path中的套结字文件会自动生成bind(fd,addr,len);1.3 监听listen(fd,100);1.4等待并接收连接请求struct sockaddr_un cliaddr;int cfd = accept(fd,&cliaddr,&len)1.5通信recv send1.6关闭客户端1. int fd = socket(AF_LOCAL,SOCKET_STREAM,0)2. 绑定成功后指定的sun_path中的套结字文件会自动生成struct sockaddr_un addr;bind(fd,addr,len)3.连接struct sockaddr_un serveraddr;connect(fd,&serveraddr,len);4.通信5.关闭

三.实例代码实现

3.1 server

#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>#include <sys/un.h>int main()
{unlink("server.sock");//解决报错:bind: Address already in useint sockfd =  socket(AF_LOCAL,SOCK_STREAM,0);if(sockfd == -1){perror("socket");exit(-1);}struct sockaddr_un server;server.sun_family = AF_LOCAL;strcpy(server.sun_path,"server.sock");if(bind(sockfd,(const struct sockaddr*)&server,sizeof(server)) == -1){perror("bind");exit(-1);}if(listen(sockfd, 100) == -1){perror("listen");exit(-1);}struct sockaddr_un client;int len = sizeof(client);int client_fd = accept(sockfd,(struct sockaddr*)&client,&len);if(client_fd == -1){perror("accept");exit(-1);}char recvbuff[1024] = {0};char *server_data = "i am server";while(1){memset(recvbuff,0,sizeof(recvbuff));len = recv(client_fd,recvbuff,sizeof(recvbuff),0);if(len == -1){perror("recv");break;}else if(len == 0){printf("客户端断开连接\n");}else if(len > 0){printf("recv client data : %s\n",recvbuff);}send(client_fd,server_data,strlen(server_data),0);}close(sockfd);close(client_fd);return 0;
}

3.2 client

#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/un.h>int main()
{unlink("client.sock"); //解决报错:bind: Address already in useint sockfd =  socket(AF_LOCAL,SOCK_STREAM,0);if(sockfd == -1){perror("socket");exit(-1);}struct sockaddr_un server;server.sun_family = AF_LOCAL;strcpy(server.sun_path,"client.sock");if(bind(sockfd,(const struct sockaddr*)&server,sizeof(server)) == -1){perror("bind");exit(-1);}struct sockaddr_un client;client.sun_family = AF_LOCAL;memcpy(client.sun_path,"server.sock",sizeof("server.sock"));int len = sizeof(client);int ret = connect(sockfd,(const struct sockaddr*)&client,len);if(ret == -1){perror("connect");exit(-1);}int num = 0;char buff[1024];while(1){memset(buff,0,sizeof(buff));printf("client say: %s\n",buff);sprintf(buff,"hello i am clinet------%d\n",num++);len = send(sockfd,buff,strlen(buff)+1,0);if(len == -1){perror("send");break;}sleep(1);memset(buff,0,sizeof(buff));len = recv(sockfd,buff,sizeof(buff),0);if(len == -1){perror("recv");exit(-1);}else if(len == 0){printf("服务端断开连接\n");}else if(len > 0){printf("recv server data : %s\n",buff);}}close(sockfd);return 0;
}

http://www.yayakq.cn/news/185958/

相关文章:

  • 响应式布局网站开发建网站需要软件
  • 重庆渝中区企业网站建设哪家好网站建设公司的职责
  • 帮助中心网站怎么做做网站如何推广
  • 简单 大气 网站模版云南建设厅网站房地产开发资质
  • 海南省建设网站的公司电话网站前端开发得会什么软件
  • 北京 顺义 网站制作无为县住房和城乡建设局网站
  • 安徽省建设工程信息网站通州个人做网站
  • 网站建设 镇江建站工具也成为什么系统
  • 做网站投广告赚钱么电商网站是什么意思
  • 建个企业网站一年多少钱濮阳网站优化
  • 建设网站需要哪些人员石家庄房产备案查询网
  • 建什么网站访问量高免费素材网站无水印
  • 厦门做网站个人自动的网站设计制作
  • 高大上的网站欣赏企业网站建设骆诗设计
  • 浙江省兰溪建设局网站推广一手渠道
  • 让自己的电脑做网站的服务器做网站海报用什么app
  • 300网站建设禅城区电话黄页
  • 中煤第五建设有限公司网站wordpress 图片链接
  • 最新网站建设的模板wordpress标签云页面
  • 网站设计大概流程微信营销的特点有哪些
  • 攀枝花移动网站建设营销的方法手段有哪些
  • 论文个人网站建设谷歌字体wordpress
  • 郑州网站建设361深圳制作网站推荐
  • 怎么看网站开发用的语言下载长沙app
  • 服务好的公司网站建设与维护公司域名申请流程
  • 网站大全浏览器wap 手机网站建设
  • 建站平台排行蛋品 东莞网站建设
  • 国内最好用免费建站系统平面设计工作室赚钱吗
  • 怎么建设网站赚钱手机贵州建设厅二建考试网站
  • 网站建设最基础的是什么如何做建议的网站