首页
学习
活动
专区
工具
TVP
发布

深入理解计算机系统(第三版) CSAPP 杂谈,第11章:网络编程

增加端口概念),使其从原来的主机间传送变成可以在进程间传送(通过端口区分不同进程),通讯粒度从主机变为进程 TCP 基于 IP 协议提供进程间可靠通信 网络通信总是使用大端传输(网络字节序=大端) Linux...addrlen) // 连接服务器,成功为 0,失败为 -1 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)...此函数将主动套接字转化为监听套接字,成功为 0,失败为 -1 int accept(int listenfd, struct sockaddr *addr, socklen_t addrlen) //..., char *service, size_t servlen, int flags) // 用于 sockaddr 转换成 主机名,主机地址,服务名,端口号的字符串表示 // 简化版(非 Linux...hostlen,    char *service, size_t servlen, int flags)// 用于 sockaddr 转换成 主机名,主机地址,服务名,端口号的字符串表示 // 简化版(非 Linux

67730
您找到你想要的搜索结果了吗?
是的
没有找到

『腾讯后台开发』实习生技能要求

一、操作系统方面 多线程相关与线程之间同步技术 熟练使用(但不局限于)以下linux API linux下的线程创建、等待、获取线程id 1int pthread_create(pthread_t *thread...pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock); 7int pthread_rwlock_unlock(pthread_rwlock_t *rwlock); 8//这两个函数在Linux...熟悉守护进程的创建、原理 了解计划作业crontab 熟悉进程、线程状态查看命令(top、strace、pstack) 熟悉内存状态查看命令memstat、free 熟悉IO状态查看命令iostat、df、du 了解linux...addrlen); 2int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 3int bind(int socket..., const struct sockaddr *address, socklen_t address_len); 4int listen(int sockfd, int backlog); 5ssize_t

82820

Linux网络编程TCP

OSI 7层模型和TCP/IP四层网络模型对应关系 计算机网路基础的知识不过多讲解,主要是让大家明白接下来的Linux网络编程数据流属于那一层,具体如下图 TCP/IP协议数据流示意图 我们接下来讲解的...Linux网络编程Tcp协议是属于传输层的协议 Linux Socket 网络编程 TCP协议 TCP是面向连接的可靠的传输层协议。...TCP编程 Linux中的网络编程是通过socket接口来进行的。socket是一种特殊的I/O接口,它也是一种文件描述符。常用于不同机器上的进程之间的通信,当然也可以实现本地机器上的进程之间通信。...address_len); //协议族长度 - address: 协议族地址,通用的socket地址 通用的socket地址不是很好用,所以Linux为各个协议族提供了专门的socket地址结构体...\n",ret); struct sockaddr_in c_addr; memset(&c_addr, 0, sizeof(c_addr)); socklen_t len = sizeof

5.4K30

Linux C Socket Api详解

套接字描述符 首先会先到的是文件描述符,对Linux一切皆文件的哲学又多懂了一点儿点儿。 套接字是通信端点的抽象。与应用程序使用文件描述符一样,访问套接字需要使用套接字描述符。...Linux系统是小端字节序。 2.2 地址格式 地址确定了特定通信域中的套接字端点,地址格式与特定的通信域相关。...0,出错返回-1 参数socklen_t使用sizeof来计算就好了。...注意:linux的man命令可以查看api的详细说明,而且还有例子,也挺不错的。 4....Linux Socket Server 与 Client 例子 个人觉得这只是套接字的入门,如果一个服务器要连接多个客户端呢?以后有机会和大家一起分享下select的套接字用法。

5.5K10

Socket编程回顾,一个最简单服务器程序

扯远了,重新回顾Socket,温习下Linux内核是怎么处理Socket的吧。 文件描述符,在网络编程中经常提及这个词,当时初学时一直就这么叫着,现在回头看。...不过对Linux内核分配的IO的称谓而已,套接字(Socket)本质上就是文件描述符,为何加上文件两个字?因为Linux万物皆文件啊!。在TCP整个通讯过程,有多个文件描述符需要处理。...int bind(SOCKET socket, const struct sockaddr* address, socklen_t address_len); 为套接字绑定IP和端口。...int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 发送连接请求,代码默认阻塞。 ?...int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 接受连接请求,代码默认阻塞。

43930

Linux网络编程基础API

The type should be socklen_t but the definition of the kernel is incompatible with this...好在Linux内核检测到TCP紧急标志时,将通知应用程序有带外数据需要接收。内核通知应用程序带外数据到达的两种常见方式是: 1O复用产生的异常事件和SIGURG信号。...对这种情况,Linux给开发人员提供的解决方案是:对监听socket设置这些socket选项,那么accept返回的连接socket将自动继承这些选项。...__salen, char *__restrict __host, socklen_t __hostlen, char *__restrict __serv, socklen_t __servlen...getnameinfo和getaddrinfo函数成功时返回0,失败时返回错误码,可能的错误码如表: Linux下strerror函数能将数值错误码error转换成易读的字符串形式,同样下面的函数可将表错误码转换成字符串形式

1.4K20

day01-从一个基础的socket服务说起

本节目的 实现一个基于socket的echo服务端和客户端 服务端监听流程 第一步:使用socket函数创建套接字 在linux中,一切都是文件,所有文件都有一个int类型的编号,称为文件描述符。...在 Linux 下使用 头文件中 socket() 函数来创建套接字 int socket(int af, int type, int protocol); af: IP...bind函数也在头文件中,原型为: int bind(int sock, struct sockaddr *addr, socklen_t addrlen); sock:socket...第三步:使用listen函数让套接字进入监听状态 int listen(int sock, int backlog); //Linux backlog:表示全连接队列的大小 半连接队列&全连接队列...int connect(int sock, struct sockaddr *serv_addr, socklen_t addrlen); 各个参数的说明和bind()相同,不再重复。

1.2K62
领券