TCP网络编程
YoungSusie
这个作者很懒,什么都没留下…
展开
-
TCP网络编程之局域网下的单线程echo服务器简易版0
本文利用c++在Linux编写了一个echo程序,实现回显服务,把服务端将收到的数据发回客户端,主要用到的技术有socket,非阻塞IO,时间循环 EventLoop,进程等知识。echo服务器的基本功能 将客户端发送给服务器的内容进行ROT13加密之后发回客户端。服务端IO模型采用IO复用 + 非阻塞IO模型,其中IO复用采用的是Linux下的epoll机制,下面首先介绍L...原创 2019-06-13 19:00:34 · 698 阅读 · 0 评论 -
多线程服务器的适用场合与常用编程模型
本文摘自陈硕老师的linux多线程服务端编程1. 单线程服务器的常用编程模型non-blocking + IO multiplexing 模型,即Reactor 模型。Reactor模型是事件驱动模型,有一个或者多个并发输入源,类似于生产者与消费者模式,有一个或者多个生产者将事件放入一个Queue中,而一个或者多个消费者主动从队列中Poll事件来处理。Reactor基于事件回调函数必须是...原创 2019-06-14 14:42:13 · 560 阅读 · 0 评论 -
TCP网络编程之服务器程序设计范例
1、accept + fork, TCP并发服务器程序每个客户一个子进程存在的问题是每个客户现场fork 一个子进程比较悍匪CPU时间。此类型并发服务器的主体循环伪代码如下for(;;){ clilen = addrlen; if((confd = accept(listenfd,cliaddr,&clilem)) < 0) { if(errno == EIN...原创 2019-06-21 08:37:46 · 555 阅读 · 0 评论 -
C++多线程系统编程精要(一)
本文摘自陈硕老师的linux多线程服务端编程学习多线程最大的思想转变有两点:(1)当前线程可能随时被切换出去,或者被抢占了。(2)多线程程序中事件的发生顺序不再有全局统一的先后关系。线程被切换回来的时候,全局变量可能已经变化。多线程程序运行的正确性不能依赖于任何一个线程的执行速度,不能通过原地等待来假定其他线程的事件已经发生,必须 通过适当的同步 来让当前线程能看到其他线程事件的结果。...原创 2019-06-17 14:05:45 · 537 阅读 · 0 评论 -
C++多线程系统编程精要(二)
本文摘自陈硕老师的linux多线程服务端编程1. 多线程与IOList item原创 2019-06-19 19:44:55 · 400 阅读 · 0 评论 -
TCP网络编程需要考虑的问题
基于事件的非阻塞网络编程是编写高性能并发网络服务程序的主流模式,这种模式下,注册一个收数据的回调,收到数据会回调;注册一个接受连接的回调,接受到新连接之后会回调。TCP网络编程最本质的是处理三个半事件: 连接的建立 连接的断开 消息到达 消息发送完毕 其中存在不少难点:如果要主动关闭连接,如何保证对方已经收到了全部数据?解答: 使用shutdown???在非阻塞网络编...原创 2019-07-07 08:45:17 · 810 阅读 · 0 评论 -
Manpage of TCPDUMP
tcpdump : dump traffic on a network, 用于将网络中传送的数据包完全截获下来提供分析。1、语法tcpdump [-adeflnNOpqStvx][-c<数据包数目>] [-dd][-ddd][-F<表达文件>][-i<网络界面>] [-r<数据包文件>][-s<数据包大小>] [-...原创 2019-08-16 15:06:39 · 302 阅读 · 0 评论