• 大二学计算机网络时留下的一个坑,具体API的实现不太清楚,但照着做程序运行成功了
  • 编写服务端SERVER程序
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/un.h>
#include <unistd.h>int main()
{int a,b,c;int server_sock;int server_len;unlink("server_socket");server_sock = socket(AF_UNIX,SOCK_STREAM,0);struct sockaddr_un server_address;server_address.sun_family = AF_UNIX;strcpy(server_address.sun_path,"server_socket");server_len = sizeof(server_address);bind(server_sock, (struct sockaddr *)&server_address,server_len);listen(server_sock,5);int client_sock,client_len;struct sockaddr_un client_address;while(1) {printf("server waiting...\n");client_len = sizeof(client_address);client_sock = accept(server_sock,(struct sockaddr*)&client_address,&client_len);read(client_sock,&a,sizeof(int));read(client_sock,&b,sizeof(int));c = a+b;write(client_sock,&c,sizeof(int));close(client_sock);}
}
  • 编写客户端CLIENT程序
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/un.h>
#include <unistd.h>int main() {int a=0,b=0,c=0;int len,result;int sock = socket(AF_UNIX,SOCK_STREAM,0);struct sockaddr_un address;address.sun_family = AF_UNIX;strcpy(address.sun_path,"server_socket");len = sizeof(address);result = connect(sock,(struct sockaddr*)&address,len);a = 101;b = 202;write(sock,&a,sizeof(int));write(sock,&b,sizeof(int));read(sock,&c,sizeof(int));printf("from server the number is %d",c);close(sock);exit(0);return 0;
}
  • 编译gcc -o Server socketServer.c,先运行./Server,再运行客户端
  • 效果如下图所示

Linux环境下实现一个简单socket通信相关推荐

  1. 操作系统课程设计--在Linux环境下模拟实现简单命令解释器(C++代码)

    操作系统课程设计要求 一.设计目的 熟悉Linux编程环境,加强对Linux命令的理解及函数的运用 二.设计内容 1. 在Linux环境下模拟实现简单命令解释器. (1)要求实现的基本命令包括: pw ...

  2. Linux环境下移动一个文件夹下的所有文件到另一个文件夹

    Linux环境下移动一个文件夹下的所有文件到另一个文件夹 研究命令 最近需要把一个环境里的文件,迁移到另一个环境里去,但是两个环境里的数据会有一些同名的子目录,要求不能覆盖数据而是合并,迁移之前我先做 ...

  3. linux 环境下的进程间的通信——消息队列传输结构体

    linux 环境下的进程间的通信方式主要有:管道,有名和无名管道, 这种方式适用于具有亲缘关系的进程之间的通信: 信号: 消息队列: 共享内存: 信号量: 套接字: 这次主要涉及消息队列: 1. 需要 ...

  4. 如何在win10+VS2017环境下新建一个简单的WDF示例程序

    上一课我们在win10系统+VS2017开发环境下搭建了WDK驱动程序开发环境的搭建,详见我的博客[如何在win10+VS2017环境下安装USB驱动开发套件WDK],今天我们来尝试建立一个最简单的K ...

  5. 在linux环境下模拟实现简单命令解释器_git bash 竟然不支持 tree 命令

    别人家的孩子 以下故事,纯属虚构,如有雷同,绝不可能! git 是一个思维敏捷做事可靠的好管家,什么事交给他都很放心,文件再也不用担心丢失了,还得记住文件内容的更改变化. 可惜的是,git 是别人家的 ...

  6. oracle创建用户saler,Linux环境下sqlldr一个csv文件

    本来是练习三思的书里一个sqlldr的小示例,就是把excel文件另存为csv后通过sqlldr加载到Oracle数据库中.其目的本来是为了演示一下csv文件的sqlldr以及csv文件中的字符串中存 ...

  7. Golang在Linux环境下的POSIX风格socket编程

    这里给出一个服务端和client,服务端能够接受多个连接,而且利用Go的杀手特性go和channel来替代select进行数据的接收. 服务端: package mainimport ("f ...

  8. Linux环境下编写一个shell程序,此程序的功能:随机生成一个1-100的数(答案)让用户猜

    题目:编写一个shell程序,此程序的功能:随机生成一个1-100的数(答案)让用户猜,如果用户猜的数大于答案,则提示大了,如果用户猜的数小于答案,则提示小了.当用户猜对时提示:猜对了. #! /bi ...

  9. Flameshot:Linux 环境下的一个简洁但功能丰富的截图工具

    1. 安装 在 Debian 10+ 和 Ubuntu 16.04+ 中,可以使用 apt 包管理器来安装它: sudo apt-get install flameshot 2. 使用 3. 下载 步 ...

最新文章

  1. C语言字母和数字数量,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
  2. zhcon解决Ubuntu命令行模式乱码问题
  3. 协同过滤——基于邻域的算法
  4. 使用FreeRTOS进行性能和运行时分析
  5. 大厂面试算法系列-如何从无序链表中移除重复项(二)-递归法
  6. 都 2021 了,你还忘记关闭 http body?
  7. 【笔记】时间片轮转 RR 进程调度算法(Java 实现)
  8. openai-gpt_GPT-3对非技术专业人员意味着什么
  9. Struts框架命名空间问题答疑
  10. 一文看尽 6篇 CVPR2021 2D 异常检测论文
  11. JavaScript 30 Day -- 07 彩虹画笔
  12. JAVA简介及视频教程
  13. KBEngine warring项目源码阅读(二) 登录和baseapp的负载均衡
  14. cf服务器无响应,穿越火线优化玩家分辨率,告别白屏未响应!
  15. 数据透视表知识点+案例
  16. html2canvas边框无法渲染,html2canvas无法正常渲染特定的数据URI
  17. solr教程,值得刚接触搜索开发人员一看
  18. ESP32设备驱动-TM1637-驱动4位7段数码管
  19. 旺店通·企业奇门与金蝶云星空对接集成查询销售出库单连通[旺店通][销售出库单标准新增]-v1(旺店通->金蝶销售出库单--零售销售(手工运维))
  20. 日志服务日志查询语法

热门文章

  1. python3 x版本的默认编码_python3.x设置默认编码(sys.stdout.encoding和sys.defaultencoding)...
  2. 计算机开题报告中的研究方法,开题报告:经济学写论文用到的五种研究方法
  3. macOS下JetBrains配置修改错误导致无法启动解决方案
  4. 完全卸载Oracle11
  5. 2020 第十一届蓝桥杯大赛软件赛省赛(第一场),C/C++大学B组题解
  6. Coursera心理学课程考试小抄
  7. NYOJ74 - 小学生算术
  8. php短网址案例,php 短网址小例子
  9. 收到计算机系统公司退款会计分录,​收到客人的退款的会计分录怎么写
  10. 全局替换资源_BitLocker+VHD替换TrueCrypt及其后继VeraCrypt