unix域套接字UDP网络编程,服务器如下面:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>#define SA struct sockaddr
#define PATHNAME "/tmp/unixudp"void err_sys(const char *errmsg);int main(void)
{int sockfd;struct sockaddr_un servaddr, cliaddr;char buf[BUFSIZ];ssize_t n;socklen_t len = sizeof(cliaddr);if ((sockfd = socket(AF_LOCAL, SOCK_DGRAM, 0)) == -1)err_sys("socket");bzero(&servaddr, sizeof(servaddr));unlink(PATHNAME);servaddr.sun_family = AF_LOCAL;strncpy(servaddr.sun_path, PATHNAME, sizeof(servaddr.sun_path) - 1);if (bind(sockfd, (SA *)&servaddr, sizeof(servaddr)) == -1)err_sys("bind");for(;;){n = recvfrom(sockfd, buf, sizeof(buf), 0, (SA *)&cliaddr, &len);if (n == -1)err_sys("recvfrom");elseprintf("%s\n", buf);if (sendto(sockfd, buf, n, 0, (SA *)&cliaddr, sizeof(cliaddr)) != n)err_sys("sendto");}exit(0);
}void err_sys(const char *errmsg)
{perror(errmsg);exit(1);
}

client程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>#define SA struct sockaddr
#define PATHNAME "/tmp/unixudp"void err_sys(const char *errmsg);int main(void)
{int sockfd;struct sockaddr_un servaddr, localaddr;char buf[BUFSIZ], s[] = "hello china";ssize_t n;if ((sockfd = socket(AF_LOCAL, SOCK_DGRAM, 0)) == -1)err_sys("socket");bzero(&localaddr, sizeof(localaddr));localaddr.sun_family = AF_LOCAL;strncpy(localaddr.sun_path, tmpnam(NULL), sizeof(localaddr.sun_path) - 1);if (bind(sockfd, (SA *)&localaddr, sizeof(localaddr)) == -1)err_sys("bind");bzero(&servaddr, sizeof(servaddr));servaddr.sun_family = AF_LOCAL;strncpy(servaddr.sun_path, PATHNAME, sizeof(servaddr.sun_path) - 1);for(;;){if (sendto(sockfd, s, strlen(s), 0, (SA *)&servaddr, sizeof(servaddr)) == -1)err_sys("sendto");if ((n = read(sockfd, buf, sizeof(buf))) == -1)err_sys("read");else printf("%s\n", buf);usleep((rand() % 10) * 10000);}exit(0);
}void err_sys(const char *errmsg)
{perror(errmsg);exit(1);
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/mengfanrong/p/4603080.html

unix域套接字UDP网络编程相关推荐

  1. UNIX域套接字编程和socketpair 函数

    一.UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络soc ...

  2. 域服务器广播消息,广播,组播和UNIX域套接字

    1.广播 1.特点 一对多 仅能使用UDP 2.概念 发送方只有一个接收方则称单播 如果同时发给局域网中的所有主机,成为广播 只有用户数据包(使用UDP协议)套接字才能广播 广播地址 1.以192.1 ...

  3. 【socket】 unix域套接字(socketpair )通信|socketpair和pipe的区别|进程间通信-Unix domain socket

    目录 unix域套接字(socketpair )通信|socketpair和pipe的区别 socketpair机制 描述 原理 socketpair和pipe的区别 进程间通信-Unix domai ...

  4. <UDP网络编程>——《计算机网络》

    目录 1. 网络基础知识 1.1 理解源IP地址和目的IP地址 1.2 认识端口号 1.3 理解 "端口号" 和 "进程ID" 1.3.1 理解源端口号和目的端 ...

  5. unix 域套接字实现进程间通信

             目录 1.认识域套接字 2.unix域套接字相关API及地址结构介绍 (1) 创建unix域套接字 (2) 填充地址结构 sockaddr_un 3.unix域套接字实现进程间通信( ...

  6. 学习Unix域套接字总结

    开门见山,哲学三问!Unix域套接字是什么?为什么会存在Unix域套接字?如何用Unix域套接字? Unix域套接字是什么,为什么会有Unix用于套接字? Linux系统中不同进程进行通信的手段很多, ...

  7. JAVA UDP网络编程学习笔记

    一.UDP网络编程概述 采用TCP协议通信时,客户端的Socket必须先与服务器建立连接,连接建立成功后,服务器端也会持有客户端连接的Socket,客户端的Socket与服务器端的Socket是对应的 ...

  8. Beats:将 Unix 域套接字中的数据索引到 Elastic Stack

    这篇博文将解释什么是 UNIX 域套接字,以及如何将发送到 UNIX 域套接字的索引编入 Elastic Stack - 以及为此存在哪些不同的用例. UNIX 域套接字 - 简短的历史 如果你想让进 ...

  9. 【Java】UDP网络编程

    文章目录 前言 DatagramSocket DatagramPacket 注意事项与区别 代码演示 前言 UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层. ...

  10. 【技术应用】java基于UNIX域套接字(unix domain socket)连接mysql数据库

    前言 Unix domain socket 又叫 IPC(inter-process communication 进程间通信)socket,用于实现同一主机上的进程间通信. socket 原本是为网络 ...

最新文章

  1. 土豆上的小霉菌引发百万人死亡和逃难,却造就全球7千万后裔
  2. Redis Cluster 原理你了解不?
  3. 常见的跑马灯效果,无缝连接。mcake官网公告使用
  4. Oracle VM VirtualBox上安装windows server2008R2做SharePointServer2010开发(中)
  5. php 公交 查询系统,php定做单城市公交路线查询系统
  6. python链表删除尾部节点_python单链表中如何查找和删除节点?
  7. js string转number_【虚拟机系列】JS虚拟机——实现setTimeout
  8. mysql where与on 左连接与右连接
  9. 大数据时代,数据恢复技巧你会了吗?
  10. 由电梯紧急按钮,谈用户体验
  11. 学习新浪微博计数服务
  12. 第三方定量定性检测质谱实验
  13. 【盘点】2014年跨境进口型电商十大模式
  14. Reflex WMS中阶系列1 – Reflex WMS系统打印单据,是打印成PDF还是直接从打印机里打印出来?
  15. 201421410013 唐昭靖 作业1
  16. 什么是事务?事务的特性?
  17. 山西大同大学计算机科学与技术在哪个校区,山西大同大学有几个校区及校区地址 哪...
  18. Jenkins官方社区携手灵雀云成功举办Jenkins Meetup
  19. cstring头文件
  20. 软件加密保护技术简介

热门文章

  1. Linux运维跳槽40道面试精华题
  2. Android自定义View之刻度尺
  3. Linux进阶之LAMP和LNMP动态网站搭建
  4. [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的
  5. js 一个关于图片onload加载的事
  6. 深入浅出事件流处理NEsper(三)
  7. URLLoader 类和 URLVariables 类
  8. 关于软件开发的个人体会
  9. Python_notes_05
  10. Laravel nginx 伪静态规则