视频已经发布,这里是所有的代码仅供参考. TCP服务器: MainWindow里面的代码: User类的代码: TCP客户端: 我这里的ip都是我自己电脑的ip,你们参考别忘了改ip 我是蜀云泉,我爱许嵩.吼吼~ ...
分类:
其他好文 时间:
2016-06-26 16:42:02
阅读次数:
651
三次握手:建立TCP连接 连接建立过程: B的TCP服务器进程先创建传输控制块TCB(存储了每一个连接中的一些重要信息,如:TCP连接表,到发送和接收缓存的指针,到重传队列的指针,当前的发送和接收序号,等),准备接受客户进程的连接请求。然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求 ...
分类:
其他好文 时间:
2016-06-22 18:45:21
阅读次数:
184
NIO主要原理及使用 NIO采取通道(Channel)和缓冲区(Buffer)来传输和保存数据,它是非阻塞式的I/O,即在等待连接、读写数据(这些都是在一线程以客户端的程序中会阻塞线程的操作)的时候,程序也可以做其他事情,以实现线程的异步操作。 考虑一个即时消息服务器,可能有上千个客户端同时连接到服 ...
分类:
其他好文 时间:
2016-06-22 10:38:49
阅读次数:
235
了解线程池 在http://blog.csdn.net/ns_code/article/details/14105457(读书笔记一:TCP Socket)这篇博文中,服务器端采用的实现方式是:一个客户端对应一个线程。但是,每个新线程都会消耗系统资源:创建一个线程会占用CPU周期,而且每个线程都会建 ...
分类:
编程语言 时间:
2016-06-21 19:14:35
阅读次数:
388
epoll:结合了select与poll的优点,以及优化了它们的不足,来实现同时控制多个句柄,以此来实现多路复用。它也是使用文件系统的相关信息来实现的它所使用的三个系统调用函数1.epoll_create函数创建一个句柄,size大小可不关心,该句柄会占用一个文件描述符位置2.epoll_ctl函数,..
分类:
其他好文 时间:
2016-06-03 23:12:38
阅读次数:
737
IO的多路复用:一个进程可以监视多个描述符,一旦某个描述符读就绪或写就绪,能够通知进程程序进行相应的读写操作使用场景:1.当客户处理多个描述符(网络套接口)或一个客户同时处理多个套接口2.TCP服务器既要处理监听套接口又要处理已经连接的套接口3.一个服务器处理多个服务..
分类:
其他好文 时间:
2016-06-03 23:09:33
阅读次数:
321
本例演示了基本的boost异步tcp服务器程序的编写。 演示程序的构思是这样的: 服务端: l 控制台程序; l 侦听客户端连接,当有新连接时,在屏幕上打印消息; l 当收到客户端数据包时,在屏幕上打印出数据包的大小; l 当客户端断开时,在屏幕上打印消息; l 用户在窗口输入exit时,退出程序 ...
分类:
其他好文 时间:
2016-06-03 21:04:55
阅读次数:
237
其实在之前的TCP之中,我们编程实现了多进程,多线程机制下的TCP服务器,但是对于这种的TCP服务器而言,存在太大的资源局限性。所以我们可以是用I/0模型中的多路复用I/O模型来进行编程。他的具体思想就是:当前进程可以处理多个相应时间,记录多个描述符,然后控制轮询时间态,..
分类:
其他好文 时间:
2016-05-25 19:09:03
阅读次数:
694
在TCP服务器编程那篇博客中,我们提到了更加优化连接方式,其实就是关于I/O的传输模型:我们常见的几种I/O模型:阻塞式I/O模型:当进程进行数据传输连接的时候,只能够阻塞的等待数据的到来,而无法去干其他的事情,将服务进程的所有精力全部去应付当前连接;图解:2.非阻塞式I/O..
分类:
其他好文 时间:
2016-05-25 19:01:09
阅读次数:
291
其实对于socket:我们需要理解的是他提供了一种编程概念,利用socket就可以利用系统已经封装好的内部进行通信,我们只需要关注应用层方面的数据控制就OK了。一.套接字(socket)socket英文为插座的意思,也就是为用户提供了一个接入某个链路的接口。而在计算机网络中,一个IP地..
分类:
其他好文 时间:
2016-05-22 00:57:21
阅读次数:
578