写在前面: 最近在看nginx具体接口的实现,发现一些网络接口不是很熟悉,大概看了下Unix网络编程,发现上面都有具体介绍。后续这段时间攻读下这本教程。记于 2018-1-30第三章   套接字编程简介1. IPv4套
原创 2021-07-12 17:05:57
234阅读
Linux网络编程Unix网络编程是当今计算机领域中非常重要的技术之一,也是广大程序员研究和学习的重点。在这两种操作系统下,红帽(Red Hat)作为一家知名的软件公司,一直在网络编程领域发挥着重要作用。 红帽一直致力于开发和推广开源软件,特别是在Linux操作系统下。从最初的红帽Linux到现在的Red Hat Enterprise Linux,红帽一直在不断完善和优化其操作系统,为用户提供
原创 2024-03-07 10:04:00
191阅读
#include #include #include #include #include #include #define MAXLINE 4096 #define FIFO1 "/tmp/fifo.1"#define FIFO2 "
原创 2022-09-09 15:58:52
94阅读
管道作为进程间通信的最古老方式,它的缺点是没有名字,因此仅仅能用在有亲缘关系的父子进程之间。对于无亲缘关系的进程间。无法用管道进行通信。FIFO能够完毕无亲缘关系的进程间的通信。FIFO也被称为命名管道。它是一种特殊类型的文件。在文件系统中以文件名称的形式存在,但它的行为却和上面提到的管道类似。 创
转载 2017-04-26 21:19:00
148阅读
2评论
UNIX网络编程是指在UNIX操作系统环境下进行网络程序开发的一种技术。Linux作为一种类UNIX操作系统,也同样适用于UNIX网络编程UNIX网络编程和Linux紧密相关,为开发者提供了强大的工具和库函数,帮助他们创建功能强大的网络应用程序。 UNIX网络编程包含了在网络上进行数据传输和通信的一系列技术和协议。在UNIX网络编程中,程序通过套接字(socket)进行数据的读写和网络的连接。
原创 2024-01-31 19:35:04
128阅读
Linux和Unix操作系统被广泛应用于网络编程中,因为它们具有出色的稳定性和灵活性。作为Linux和Unix操作系统中最受欢迎的一个,红帽 Linux 不仅可以满足一般网络编程的需求,还提供了丰富的网络编程工具和库。 在Linux和Unix网络编程中,常用的编程语言包括C、C++、Python等。C语言作为一种底层语言,可以直接访问操作系统的API接口,因此在网络编程中得到了广泛的应用。而C+
原创 2024-03-12 11:23:15
83阅读
使用UDP编写的一些常见得应用程序有:DNS(域名系统),NFS(网络文件系统)和SNMP(简单网络管理协议)。 客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地(即服务器)的地址作为参数。类似的,服务器不接受来自客户的连接,而是只管调用...
转载 2013-07-25 12:16:00
186阅读
2评论
一个完整socket的相关描述(协议,本地地址,本地端口,远程地址,远程in,i
原创 2023-03-02 16:16:48
148阅读
一、IP数据报格式 IP数据报格式如下: 版本:IP协议版本号,长度为4位,IPv4此字段值为4,IPv6此字段值为6 首部长度:以32位的字为单位,该字段长度为4位,最小值为5,即不带任何选项的IP首部20个字节...
转载 2013-07-22 11:37:00
137阅读
2评论
第四章笔记 1. 基本Tcpclient/server程序的套接字函数 2. socket函数: int socket(int family,int type,int protocol); (1)socket有三个函数,除了tcp udp外还支持很多协议。 (2)对于tcp协议:三个參数分别为AF_
原创 2022-01-10 15:03:31
178阅读
每当收到一个带外数据时,就有一个与之关联的带外标记。这是发送进程发送带外字节时该字节在发送端普通数据流中的位置。在从套接字读入期间,接收进程通过调用sockatmark函数确定是否处于带外标记。#include int sockatmark(int sockfd); /* 返回值:如...
转载 2013-07-28 19:36:00
177阅读
2评论
在fork()/exec()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀...
转载 2013-07-23 19:51:00
120阅读
2评论
产生RST的3个条件:1. 建立连接的SYN到达某端口,但是该端口上没有正在监听的服务。 如:IP为192.168.1.33的主机上并没有开启WEB服务(端口号为0x50),这时我们通过IE去访问192.168.1.33,通过Wireshark抓包,可以看到,对此SYN包的回复为RST。说明此...
转载 2013-07-25 01:54:00
145阅读
2评论
执行流程: 1、创建监听 socket,并绑定、监听; 2、调用 epoll_create() , 创建 epollfd 代理; 3、将想要监听的 listenfd,通过 epoll_ctl() , 挂载到 epollfd 上,让 epollfd 代理监听; 4、在一个 while 循环中,调用 e ...
转载 2021-10-05 13:42:00
277阅读
2评论
服务器端:========================================
原创 2023-03-02 16:16:41
91阅读
服务器端:======================================
原创 2023-03-02 16:16:54
83阅读
#include #include #include #include #include #include #define MAXLINE 4096void client(int readfd, int writefd){ size_t len; ssizread pathname */ fgets(
原创 2022-09-09 15:58:45
109阅读
UNIX和Linux是广泛使用的操作系统,而网络编程作为在UNIX和Linux系统中开发网络应用的重要技能,也备受关注。对于想要深入学习UNIX和Linux网络编程的人来说,PDF电子书成为了一种便捷的学习方式。在这篇文章中,我们将探讨关于UNIX和Linux网络编程PDF电子书的相关信息。 首先,什么是UNIX和Linux网络编程UNIX和Linux系统提供了许多网络编程接口和工具,使开发人
原创 2024-05-29 11:34:01
120阅读
通常客户一次只与一个服务器通信,上图为:一个服务器同时处理多个客户的请求。上图为:客户与服务器使用TCP协议在同一个以太网中通信。路由器是广域网的架构设备。今天,最大的广域网是因特网。上图为:处于不同局域网的客户和服务器主机通过广域网连接。
原创 2021-08-05 16:04:37
521阅读
概述: 实现并发服务器一般都是父进程accept一个连接,然后fork一个子进程,该子进程处理与该连接对端的客户之间的通信。但是fork是昂贵,耗资源和时间。而线程是轻量级线程,它的创建比进程的创建块10-100倍。在同一进程内除了共享全局变量外还共享:大多数数据;进程指令; 打开的文件; 信号处理函数信号处置; 当前工作目录;用户ID和组ID不过每个线程有各自的资源:‘线程ID; 寄存器集合了栈了errno; 信号掩码; 优先级基本线程函数:创建和终止 pthread_create函数 #include int pthread_create(pthread_t *tid, const pt.
转载 2013-08-25 20:31:00
146阅读
  • 1
  • 2
  • 3
  • 4
  • 5