- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 网络基础 —select函数
1.函数原型int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);2.函数说明select()用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数readfds、writefds和exceptfds 称为描述词组,是用来回传该描述...
2018-03-29 23:41:07 318
原创 网络基础—socket编程(2)-----基于UDP的客户端和服务器端的实现
基于UDP的socket 服务端和客户端实现——服务端#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <unistd.h>#include &a
2018-03-29 01:11:27 457
原创 网络基础—socket编程(1)
socket网络编程的含义 linux网络编程是通过socket(套接字)接口实现,socket是一种文件描述符(可类比文件操作),socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种”打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个”文件”,在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。常见 socket 分类 ...
2018-03-29 00:00:29 272
原创 一个有趣的智力题,可以看看
题目“从前,有个小岛上只住着和尚。有些和尚的眼睛是红色的,而另一些的则是褐色。红色眼睛的和尚受到诅咒,如果得知自己的眼睛是红色的,那么当晚12点必须自行了断。(因为受到诅咒,所以只要得知自己的眼睛是红色的,则必须选择自杀,无一例外。)”和尚们之间有一条不成文的规定,彼此不能提起对方眼睛的颜色。小岛上没有一面镜子,也没有可以反射自己容貌的物体。因此,没有任何人能够得知自己眼睛的颜色。出于这些...
2018-03-27 13:12:29 8440 3
原创 网络基础—解决粘包问题
TCP是一种基于字节流的传输服务,因此,TCP所传输的数据是没有边界的。这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的。TCP的发送方无法保证对等方每次接收到的是一个完整的数据包。 1、TCP粘包问题产生的原因SQ_SNDBUF 套接字本身有缓冲区大小的限制 (发送缓冲区、接受缓冲区)TCP传送的端 MSS大小限制链路层也有MTU大小限制,如果数据包大于>MTU要在...
2018-03-26 19:24:09 302
原创 网络基础—网络体系结构浅析
链路层将信息封装->发送->解封 ——–1500———- ARParp -a 缓存ARP帮忙找路,如果发不出去,回应需要ICMP协议ping命令网络层(IP层) IP协议头格式 IP层主机间通信路径的选择(路由)route -n 查看路由表信息 ifconfig -a eth0 查看自己的IP地址比较原机器和目标机器的网络号;相同就继...
2018-03-25 17:20:00 198
原创 网络基础—网络基本认识及相关接口
FTP协议传送文件: 1.文件名 2.大小 3.内容网络的分层结构: 1.TCP/IP因其低成本、不同平台间通信的可靠性,已成为局 域网和internet的标准协议。 1.TCP/IP分为四层,从上网下依次是: 应用层、传输层、网络层、网络接口层。 2.应用层: 使用应用层协议,将封装好的数据提交给传输层、或者从传输层接收数据并处理。 3.传输层: 实现应用...
2018-03-25 17:07:16 475
原创 判断是否平衡树的优化算法
平衡二叉搜索树左右高度差不超过1 高度可以保持在log2N,插入/删除/查找效率log2N1.左边增加结点,bf–,右边增加结点,bf++ 2.如果增加过后,bf==0,说明高度不变,填平了矮的一边 3.如果bf==|1|,说明本来平衡,继续往上更新bf 4.如果bf==|2|,不再更新,开始调整旋转 1.左单旋/右单旋 2.右左双旋/左右双旋面试题判断一个二叉树是...
2018-03-25 16:56:20 339
原创 Linux下makefile模板
提供一个简单的 Makefile 模板,根据需要作相应修改,可以适用于很多小项目。CC=gccSRCS=$(wildcard *.c */*.c)OBJS=$(patsubst %.c, %.o, $(SRCS))FLAG=-gNAME=$(wildcard *.c)TARGET=$(patsubst %.c, %, $(NAME))$(TARGET):$(OBJS) ...
2018-03-25 12:21:52 518
UNIX环境高级编程
2017-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人