摘要: 粘包及处理方法 粘包:由于缓冲区及下层硬件的原因,第n个包与第n+1个包合并在一起发送,或第n个包与第n+1个包的一部分合并在一起发送,等等。如果接收方要求格式良好,那我们就必须控制发送与接收方式。 处理方法: 1.发送定长包,发送方每次固定发送n个字节长,同时接受方固定每次读n个字节长。缺点:数据 阅读全文
posted @ 2016-12-04 21:14 cfans1993 阅读(144) 评论(0) 推荐(0)
摘要: select的优点与使用方法 select用单线程的方法遍历所有待读写的I/O接口, 当有接口可用时就会返回. select可设置电脑阻塞或非阻塞. 特别注意: 每次select前都要重新初始化集合和相关的时间结构 使用的基本过程: 实例 只写了server端的,client端差不多 c inclu 阅读全文
posted @ 2016-12-04 21:13 cfans1993 阅读(291) 评论(0) 推荐(0)
摘要: server.c 把accept也看成是一个read类型的函数, 于是我们可以把sockfd也放入到select中 maxi标记当前客户端连接数组的最大下标 select返回值为当前已经准备就绪的fd总数 c include include include include include inclu 阅读全文
posted @ 2016-12-04 21:13 cfans1993 阅读(1761) 评论(0) 推荐(0)
摘要: select的限制 select的并发数受到两个限制:1.一个进程能打开的最大描述符数量;2.select中fd_set集合容量的限制(FD_SETSIZE) 关于进程的最大描述符数量: ulimit n:查看一个进程能打开的最大描述符数量 ulimit n 2048:将最大描述符数量更改为2048 阅读全文
posted @ 2016-12-04 21:12 cfans1993 阅读(339) 评论(0) 推荐(0)
摘要: 非阻塞read/write 函数返回0表示可读或可写, 1表示select失败或超时 select返回0表示超时, 1表示读取失败,1表示可读或可写 非阻塞accecpt c int accept_timeout(int fd,struct sockaddr_in addr,unsigned int 阅读全文
posted @ 2016-12-04 21:12 cfans1993 阅读(179) 评论(0) 推荐(0)
摘要: 关于select/poll与epoll select/poll虽然避免了无限循环轮循, 但是有一个问题,那就是特定事件发生时,我们还是需要再次轮循一遍查看到底时哪个或哪几个fd产生了可读或可写事件 epoll的等待事件返回后, 虽然返回值也是可用事件总数, 但可用事件会返回到一个指定的事件集合中,这 阅读全文
posted @ 2016-12-04 21:11 cfans1993 阅读(151) 评论(0) 推荐(0)
摘要: getaddrinfo getaddrinfo的一个重要功能, 很方便的构造struct sockaddr_in对象, 把繁琐的构造过程隐藏起来 getaddrinfo兼有gethostbyname和getservbyname等四个函数的功能 能传入ip/port, hostname/port, i 阅读全文
posted @ 2016-12-04 21:10 cfans1993 阅读(725) 评论(0) 推荐(0)
摘要: 先说结论 一般分字符串形式和二进制形式两种. 由于大小端, 64/32位问题, 推荐使用字符串作为传输数据格式 字符串方式 主程序在[多线程的发送与接收]那一节 主要修改就是服务端接收到数据后,将字符串转换成数字进行相加,然后发回给客户端 二进制方式 先加个头文件sum.h, 服务端与客户端都使用同 阅读全文
posted @ 2016-09-18 22:49 cfans1993 阅读(665) 评论(0) 推荐(0)
摘要: 第二版的问题 第二版中存在一个问题, 当服务端进程意外终止, 如果客户端正阻塞在输入时, 那么无法接收到通知, 直到按下回车发送时报错才得知服务端已经关闭 client serv 几点说明: 变量i,sockfd功能相近, 遍历时用 client[FD_SETSIZE]用来保存所有需要读取的fd m 阅读全文
posted @ 2016-09-18 22:48 cfans1993 阅读(380) 评论(0) 推荐(0)
摘要: server 最大连接数为10,监听13号端口,当有客户端连接上来时,打印客户端的相关信息,同时向客户端发送当前服务器时间 client 连接到服务端,连接完成后只接受不发送信息,收到第一条信息后打印并退出 阅读全文
posted @ 2016-09-18 22:47 cfans1993 阅读(118) 评论(0) 推荐(0)