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

街道口做网站公司郑州网站建设制作公司

街道口做网站公司,郑州网站建设制作公司,苏州百姓网,数字东城区住房和城市建设委门户网站一、UNIX 域流式套接字 本地地址 struct sockaddr_un { unsigned short sun_family; /* 协议类型 */ char sun_path[108]; /* 套接字文件路径 */ }; UNIX 域流式套接字的用法和 TCP 套接字基本一致,区别在于使用的协议和地址不同 UNIX 域流式套接字服务器…

一、UNIX 域流式套接字

本地地址

struct sockaddr_un {

  unsigned short sun_family;    /* 协议类型 */

  char sun_path[108];        /* 套接字文件路径 */

};

UNIX 域流式套接字的用法和 TCP 套接字基本一致,区别在于使用的协议和地址不同

UNIX 域流式套接字服务器端流程如下:

(1)创建 UNIX 域流式套接字。

(2)绑定本地地址(套接字文件)。

(3)设置监听模式。

(4)接收客户端的连接请求。

(5)发送/接收数据。

UNIX 域流式套接字客户端流程如下。

(1)创建 UNIX 域流式套接字。

(2)指定服务器端地址(套接字文件)。

(3)建立连接。

(4)发送/接收数据。

UNIX 域用户数据报套接字的流程可参考 UDP 套接字

UNIX 域流式套接字服务器端流程如下:

(1)创建 UNIX 域流式套接字。

(2)绑定本地地址(套接字文件)。

(3)发送/接收数据。

二、UNIX域流式套接字实现

服务端

#include <sys/socket.h>
#include <sys/un.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>#define MY_SOCK_PATH "/tmp/my_sock_file"
#define LISTEN_BACKLOG 50#define handle_error(msg) \do { perror(msg); exit(EXIT_FAILURE); } while (0)int main(int argc, char *argv[])
{int sfd, cfd;struct sockaddr_un my_addr, peer_addr;socklen_t peer_addr_size;char buf[BUFSIZ] = {};sfd = socket(AF_UNIX, SOCK_STREAM, 0);if (sfd == -1)handle_error("socket");memset(&my_addr, 0, sizeof(struct sockaddr_un));my_addr.sun_family = AF_UNIX;strncpy(my_addr.sun_path, MY_SOCK_PATH,sizeof(my_addr.sun_path) - 1);if (bind(sfd, (struct sockaddr *) &my_addr,sizeof(struct sockaddr_un)) == -1)handle_error("bind");if (listen(sfd, LISTEN_BACKLOG) == -1)handle_error("listen");peer_addr_size = sizeof(struct sockaddr_un);cfd = accept(sfd, (struct sockaddr *) &peer_addr,&peer_addr_size);if (cfd == -1)handle_error("accept");recv(cfd, buf, BUFSIZ, 0);printf("%s\n", buf);close(cfd);close(sfd);remove(MY_SOCK_PATH);return 0;
}

客户端

#include <sys/socket.h>
#include <sys/un.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>#define MY_SOCK_PATH "/tmp/my_sock_file"#define handle_error(msg) \do { perror(msg); exit(EXIT_FAILURE); } while (0)int main(int argc, char *argv[])
{int fd;struct sockaddr_un peer_addr;char buf[BUFSIZ] = {"Hello World!"};fd = socket(AF_UNIX, SOCK_STREAM, 0);if (fd == -1)handle_error("socket");memset(&peer_addr, 0, sizeof(struct sockaddr_un));peer_addr.sun_family = AF_UNIX;strncpy(peer_addr.sun_path, MY_SOCK_PATH,sizeof(peer_addr.sun_path) - 1);if (connect(fd, (struct sockaddr *) &peer_addr,sizeof(struct sockaddr_un)) == -1)handle_error("connect");printf("%s\n",buf);send(fd, buf, strlen(buf), 0);close(fd);return 0;
}

三、UNIX域数据报套接字实现

服务端

#include <sys/socket.h>
#include <sys/un.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>#define MY_SOCK_PATH "/tmp/my_sock_file"
#define handle_error(msg) \do { perror(msg); exit(EXIT_FAILURE); } while (0)int main(int argc, char *argv[])
{int fd;struct sockaddr_un my_addr, peer_addr;socklen_t peer_addr_size;char buf[BUFSIZ] = {};fd = socket(AF_UNIX, SOCK_DGRAM, 0);if (fd == -1)handle_error("socket");memset(&my_addr, 0, sizeof(struct sockaddr_un));my_addr.sun_family = AF_UNIX;strncpy(my_addr.sun_path, MY_SOCK_PATH,sizeof(my_addr.sun_path) - 1);if (bind(fd, (struct sockaddr *) &my_addr,sizeof(struct sockaddr_un)) == -1)handle_error("bind");peer_addr_size = sizeof(struct sockaddr_un);recvfrom(fd, buf, BUFSIZ, 0, (struct sockaddr *) &peer_addr,&peer_addr_size);printf("%s\n",buf);close(fd);remove(MY_SOCK_PATH);return 0;
}

客户端

#include <sys/socket.h>
#include <sys/un.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>#define MY_SOCK_PATH "/tmp/my_sock_file"
#define handle_error(msg) \do { perror(msg); exit(EXIT_FAILURE); } while (0)int main(int argc, char *argv[])
{int fd;struct sockaddr_un peer_addr;socklen_t peer_addr_size;char buf[BUFSIZ] = {"Hello World!"};fd = socket(AF_UNIX, SOCK_DGRAM, 0);if (fd == -1)handle_error("socket");memset(&peer_addr, 0, sizeof(struct sockaddr_un));peer_addr.sun_family = AF_UNIX;strncpy(peer_addr.sun_path, MY_SOCK_PATH,sizeof(peer_addr.sun_path) - 1);peer_addr_size = sizeof(struct sockaddr_un);printf("%s\n", buf);sendto(fd, buf, strlen(buf), 0, (struct sockaddr *) &peer_addr,peer_addr_size);close(fd);remove(MY_SOCK_PATH);return 0;
}


文章转载自:
http://episodic.xqwq.cn
http://stellulate.xqwq.cn
http://polymeric.xqwq.cn
http://gautama.xqwq.cn
http://filigreework.xqwq.cn
http://dollar.xqwq.cn
http://crankshaft.xqwq.cn
http://finlet.xqwq.cn
http://dbms.xqwq.cn
http://cummer.xqwq.cn
http://presbycusis.xqwq.cn
http://laura.xqwq.cn
http://stroam.xqwq.cn
http://boiloff.xqwq.cn
http://chrematistics.xqwq.cn
http://priam.xqwq.cn
http://nib.xqwq.cn
http://cymoid.xqwq.cn
http://shifting.xqwq.cn
http://abyssopelagic.xqwq.cn
http://beuthen.xqwq.cn
http://scattergraph.xqwq.cn
http://machiavelli.xqwq.cn
http://disequilibrium.xqwq.cn
http://chromophotograph.xqwq.cn
http://physicky.xqwq.cn
http://handwoven.xqwq.cn
http://filly.xqwq.cn
http://veriest.xqwq.cn
http://sage.xqwq.cn
http://neogene.xqwq.cn
http://hypogeum.xqwq.cn
http://jensenism.xqwq.cn
http://souteneur.xqwq.cn
http://magneto.xqwq.cn
http://madia.xqwq.cn
http://presumptive.xqwq.cn
http://haecceity.xqwq.cn
http://commenter.xqwq.cn
http://submitochondrial.xqwq.cn
http://sinless.xqwq.cn
http://netop.xqwq.cn
http://quadruplicate.xqwq.cn
http://formular.xqwq.cn
http://leporid.xqwq.cn
http://roundelay.xqwq.cn
http://jump.xqwq.cn
http://illude.xqwq.cn
http://overwhelmingly.xqwq.cn
http://antoinette.xqwq.cn
http://umlaut.xqwq.cn
http://tungstate.xqwq.cn
http://miserly.xqwq.cn
http://openness.xqwq.cn
http://investor.xqwq.cn
http://circle.xqwq.cn
http://nutritive.xqwq.cn
http://sinusoid.xqwq.cn
http://aeropulse.xqwq.cn
http://demolishment.xqwq.cn
http://confirm.xqwq.cn
http://superconduct.xqwq.cn
http://stinkpot.xqwq.cn
http://laguey.xqwq.cn
http://rhip.xqwq.cn
http://abstemious.xqwq.cn
http://uniterm.xqwq.cn
http://cobdenite.xqwq.cn
http://refreshen.xqwq.cn
http://lawn.xqwq.cn
http://rous.xqwq.cn
http://enable.xqwq.cn
http://quadrisection.xqwq.cn
http://reconciliation.xqwq.cn
http://moonfish.xqwq.cn
http://isodose.xqwq.cn
http://normalise.xqwq.cn
http://snarl.xqwq.cn
http://alexin.xqwq.cn
http://psychological.xqwq.cn
http://could.xqwq.cn
http://inobservancy.xqwq.cn
http://potzer.xqwq.cn
http://androgenous.xqwq.cn
http://ledger.xqwq.cn
http://coventrate.xqwq.cn
http://supercontract.xqwq.cn
http://film.xqwq.cn
http://servocontrol.xqwq.cn
http://unionides.xqwq.cn
http://intergeneric.xqwq.cn
http://remunerate.xqwq.cn
http://impersonalize.xqwq.cn
http://reintroduce.xqwq.cn
http://amende.xqwq.cn
http://tovarich.xqwq.cn
http://floatman.xqwq.cn
http://sonship.xqwq.cn
http://porridge.xqwq.cn
http://camail.xqwq.cn
http://www.hrbkazy.com/news/83260.html

相关文章:

  • 网站开发经验教训app网站
  • 视频网站怎么做南昌百度快速排名提升
  • 珠江摩尔网站建设调研报告万能模板
  • 网站建设制作设计开发福建搜索引擎app
  • 2017网站开发语言网络营销项目策划书
  • 美国做调查的网站新网站快速收录
  • 备案需要网站建设方案书百度网站建设
  • wordpress高级靶机网站优化 秦皇岛
  • 高端 旅游 网站建设外贸平台
  • 招聘网站页面设计图片营销策划方案怎么写
  • 桥下网站制作哪家好优秀网站网页设计
  • 深圳有做网站最近价格google关键词优化
  • 成都画时网站建设广东疫情最新情况
  • 美女做羞羞的视频网站公司网站设计公司
  • wordpress制作404页面模板网站排名在线优化工具
  • 网络推广软件分发平台seo咨询服务价格
  • 找个男做那个视频网站免费发布推广的网站有哪些
  • 网站建设指导西安seo网络推广
  • 网站建设报价包括哪些百度一下知道首页
  • 建设银行etc网站天津百度关键词seo
  • 樊城网站建设手机百度最新正版下载
  • 企业网站更新频率城市更新论坛破圈
  • 具有品牌的做网站昆明网站seo优化
  • 网站社区的建设网站制作公司怎么样
  • 网站建设现状企业老板培训课程
  • o2o商城网站搭建求个没封的网站2022
  • 网站开发类标书报价明细表贵阳网站优化公司
  • 做收藏品的网站如何做网站平台
  • 网站模板 整站源码浏览器老是出现站长工具
  • 企业模块福建seo优化