getsockname和getpeername #include <sys/socket.h>int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen);int getpeername(int sockfd, struct sockaddr *peeraddr, socklen_t *addrlen);返回:0—OK,-1—出错. getsockname函数返回与套接口关联的本地协议地址. getpee…
前言 当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,即传递的是一个指向结构的指针.结构的长度也作为参数来传递,其传递的方式取决于结构的传递方向:从进程到内核,还是从内核到进程. 1.从进程到内核 从进程到内核传递套接口地址结构的函数有3个:bind.connect和sendto,这3个函数的一个参数是指向套接口地址结构的指针,另一个参数是结构的整数大小,例如: /* example */ struct sockaddr_in serv; /* fill in serv{} */ c…
epoll是select/poll的强化版,都是多路复用的函数,epoll有了很大的改进. epoll的功能 1.支持监听大数目的socket描述符 一个进程内,select能打开的fd是有限制的,有宏FD_SETSIZE设置,默认值是1024.z在某些时候,这个数值是远远不够用的.解决方法有两种,已是修改宏然后再重新编译内核,但与此同时会引起网络效率的下降;二是使用多进程来解决,但是创建多个进程是有代价的,而且进程间数据同步没有多线程间方便.而epoll没有这个限制,它所支持的最大FD上限远远…
a.述 书买很久了,好好学习下.O(∩_∩)O  只写程序,原理什么的,先不写了. b.环境 deepin15.4.1 64位 vs code gcc version 6.4.0 20170724 (Debian 6.4.0-2) 虚拟机里跑的 没在物理机安装 1.2一个简单的时间获取程序 /** * TCP_getDayTime.c * 安装时间服务 * sudo apt-get install xinetd -y * * 修改yes 为 no * sudo vi /etc/xinetd.d/…
#include "unp.h" int main(int argc , char**argv) { int sockfd , n; //sockfd套接字描述符 ]; struct sockaddr_in servaddr; /*sockaddr_in={ * short sin_family; 地址族 * unsigned short sin_port; 端口号,必须采用网络数据格式,可用htons()函数将数字转换为网络数据格式 * struct in_addr sin_addr…
今天在学习accept函数的时候,在执行服务器程序的时候,碰到了如下的出错信息: bind error: Address already in use 其原因在于服务器程序使用了13号的端口; 然而在我们用netstat -tanlp查看的时候发现: Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp        0      0 127.0.1…
一. 简单介绍 如果我们本章讨论的主机都是支持双栈的,即支持IPv4地址.也支持Ipv6地址. 我们本次讨论的点:client与server端使用的是不同类型的地址.由于同样类型的地址没什么可讲的. 二. IPv4client与IPv6server 即.client使用IPv4地址套接字来通信,server端使用IPv6地址套接字通信. 原理: 0. 首先IPv6server主机保证既有IPv4地址,又有IPv6地址. 1. IPv4client通过getaddrinfo函数.找到server端…
ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口).在我们的例子中,跟在IP首部后面的前8个字节包含UDP的首部. 我们利用前面博客中UNIX网络编程学习(18)中UDP回射程序,不开启服务器端程序,只开启客户程序,发送出一个hello,没有回应,但是用wireshark抓包,会有: 根据上述ICMP格式: 76 = 14+20+8+20+8+6(hello占6字节) 同时,我们也可以…
第四章 基本tcp 套接口编程 注意区分AF_XXX 和PF_XXX,AF代表address family, PF代表protocol family. 1 socket 函数 2 connect 函数 3 bind 函数 4 listen 函数 注:主动.被动 与 服务器.客户端没有明确的对应关系 linux中定义backlog为 完成队列的最大个数 5 accept 函数 5 getsockname和getpeername的用法及实例 getsockname和getpeername #incl…
UNIX网络编程--getsockname和getpeername函数   来源:网络转载   http://www.educity.cn/linux/1241293.html     这两个函数或者返回与某个套接字关联的本地协议地址(getsockname),或者返回与某个套接字关联的外地协议地址即得到对方的地址(getpeername). #include <sys/socket.h> int getsockname(int sockfd,struct sockaddr* localadd…