(十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字
.....目录(一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO(二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO(三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录(四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息(五) ...
UNIX网络编程——getsockname和getpeername函数
UNIX网络编程——getsockname和getpeername函数 UNIX网络编程——getsockname和getpeername函数 来源:网络转载 http://www.educity.cn/linux/1241293.html 这两个函数或者返回与某个套接字关联的本地协...
《Unix网络编程》学习笔记 1 (TCP UDP 简单认识 摘抄)
1、用户数据报协议(UDP) UDP是一个简单的传输层协议。应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。UDP不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变...
Unix网络编程之广播(一)
之前编的都是TCP程序,而TCP程序仅支持单播。单播的定义:一个进程与另一个进程通信。强调的是一对一。虽然之前不知道广播和多播是什么东东,但没吃过猪肉,却见过猪跑,对于广播和多播确是早有耳闻。计划广播写两篇文章,第一篇介绍一些广播的概念,从而宏观上把握广播。第二篇会涉及到一些有关广播...
【Unix网络编程读书笔记】第四章 基本TCP套接字编程
socket函数指定期望的通信协议类型 socket()创建套接字,指定期望的通信协议类型;# include <sys/socket.h>int socket(int family, int type, int protocal); 参数: family指明协议族(协议域) ty...
UNIX网络编程笔记(3)—基本TCP套接字编程
基本TCP套接字编程主要介绍一个完整的TCP客户/服务器程序需要的基本套接字函数。1.概述在整个TCP客户/服务程序中,用到的函数就那么几个,其整体框图如下: 2.socket函数为了执行网络I/O,一个进程必须要做的事情就是调用socket函数。其函数声明如下:#include &l...
《UNIX网络编程》之select IO
select 函数的原理select 管理者用select来管理多个IO一旦其中的一个或者多个IO检测到我们所感兴趣的事件,select 函数返回,返回值为检测到的事件个数然后,遍历事件,进而去处理这些事件。select 原型:/* According to POSIX.1-2001 */ ...
unix网络编程(UNP),unp.h生成config.h
因为工作需要,需要对网络编程有些了解,所以找了大名鼎鼎的《Unix网络编程 卷一》来看看,看到第一章小小的代码就被挡住了————就是unp.h的使用,使用unp.h生成config.h。书中提示是使用autoconf。其实源码中直接运行“./configure”就可以生成。但我还是想自己利用...
【unix网络编程第三版】阅读笔记(四):TCP客户/服务器实例
本篇博客主要记录一个完整的TCP客户/服务器实例的编写,以及从这个实例中引发的对僵死进程的处理等问题。1. TCP客户/服务器功能需求本实例完成以下功能: (1) 客户从标准输入读入一行文本,并写给服务器 (2) 服务器从网络输入中读入这行文本,并回射给客户 (3) 客户从网路输入读入这行回射文本,...
UNIX网络编程卷2进程间通信读书笔记(一)—概述
http://blog.chinaunix.net/uid-12868584-id-92807.html 写的灰常好,我就转载了一.什么是进程间通信IPC是进程间通信的简称,所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不...
UNIX网络编程——通用套接字选项
1. SO_BROADCAST 套接字选项本选项开启或禁止进程发送广播消息的能力。只有数据报套接字支持广播,并且还必须是在支持广播消息的网络上(例如以太网,令牌环网等)。我们不可能在点对点链路上进行广播,也不可能在基于连接的传输协议(例如TCP和SCTP)之上进行广播。2. SO_DEBUG 套接字...
【UNIX网络编程(二)】基本TCP套接字编程函数
基于TCP客户/server程序的套接字函数图例如以下:运行网络I/O。一个进程必须做的第一件事就是调用socket函数。指定期望的通信协议类型。#include <sys/socket.h>int socket(int family, int type, int protocol);/...
Unix网络编程之三:查看进程的状态和关系
一、查看端口号和进程号的对应关系 netstat -anpt | grep 1113 tcp 0 0 0.0.0.0:1113 0.0.0.0:* LISTEN 4413/inputoutput_1tcp ...
UNIX网络编程——ICMP报文分析:端口不可达
ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口)。在我们的例子中,跟在IP首部后面的前8个字节包含UDP的首部。我们利用前面博客中UNIX网络编程学习(18)中UDP回射程序,不开启服务...
UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)
名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr在主机名字与IPv4地址之间进行转换。getservbyname和getservbyport在服务器名字和端口号之间进行转换。还有两个协议无关的转换函数:getaddrinfo和getnameinfo,分...
《UNIX网络编程 卷2》读书笔记(五)
void my_lock( int fd) { struct flock lock; lock.l_type = F_WRLCK; lock.l_whence = SEEK_SET; lock.l_start = 0; lock.l_len =...
《UNIX网络编程 卷2》读书笔记(四)
/**/ /* include globals */ #include " unpipc.h " #define MAXNITEMS 1000000 #define MAXNTHREADS 100 ...
《UNIX网络编程 卷2》读书笔记(三)
多个生产者,单个消费者,只考虑生产者之间的同步互斥 #include " unpipc.h " #define MAXNITEMS 1000000 #define MAXNTHREADS 100 int ...
《UNIX网络编程 卷2》读书笔记(二)
如何知道进程在一个空消息队列中放入一个消息?如果阻塞在msgrcv调用中,则除了等待无法做其他事情,如果给msgrcv指定非阻塞标志(IPC_NOWAIT),尽管不阻塞了,但必须持续调用该函数来确定何时有消息到达,也就是采用轮询方式(polling),Posix消息队列允许异步事件通知来...
《UNIX网络编程 卷2》读书笔记(一)
1,获取Posix IPC的名字 #include " unpipc.h " char * px_ipc_name( const char * name) { char* dir,*dst,*slash; if((dst...