网络编程
文章平均质量分 83
Mr_John_Liang
这个作者很懒,什么都没留下…
展开
-
基于Socket的UDP和TCP编程介绍
基于Socket的UDP和TCP编程介绍一、概述TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。UDP:用户数据报协议。UDP是一种无连接协议。UDP套接转载 2013-03-20 18:38:16 · 680 阅读 · 0 评论 -
TCP连接状态详解及TIME_WAIT过多的解决方法
上图对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解释一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程。1、建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次转载 2016-01-20 10:38:18 · 25527 阅读 · 1 评论 -
linux select 多路复用机制
函数作用:系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、转载 2016-01-20 10:35:43 · 378 阅读 · 0 评论 -
linux下socket connect超时设置
今天发现自己的系统存在很严重缺陷,当前台关闭的时候后台就无法正常工作,原因很好定位,后台的socket连接超时时间过长,系统默认时间好像是75秒,于是找资料,根据下边文章中的内容解决了,把超时时间设为5秒后,感觉好多了。看来还有好多东西需要慢慢挖掘阿!如何设置socket的Connect超时(linux)[From]http://dev.cbw.com/c/c/20051019转载 2016-01-20 10:34:38 · 17300 阅读 · 0 评论 -
apr_socket 编程
server端:#include #include "apr_network_io.h"using namespace std;#pragma comment(lib,"libapr-132d.lib")int main(){ apr_initialize(); apr_status_t ret = APR_SUCCESS; apr_pool_t *local_pool原创 2014-05-08 19:27:00 · 3106 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞
同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完毕以后,该函数才把消息处转载 2013-05-21 14:39:56 · 631 阅读 · 0 评论 -
同步、异步通信
在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理。1. 异步传输(Asynchronous Transmission): 异步传输将比转载 2013-05-16 11:43:24 · 690 阅读 · 0 评论 -
开源免费的C/C++网络库(c/c++ sockets library)
(1)ACE庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。http://www.cs.wustl.edu/~schmidt/ACE.html (2)AsioAsio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。开源、免费,支持跨平台。http://think-async.com/转载 2013-04-10 10:24:14 · 942 阅读 · 0 评论 -
win32下boost::asio进一步封装
在网络通信中,我个人比较喜欢异步的方式。这样我程序就不会因为I/O的读写而导致线程阻塞。理想的工作方式是通知窗口的事件通知。windows中socket的底层其实是支持窗口事件通知的,但由于boost库比较强大,我就基于asio的库来实现这样的机制。由于是异步方式,当事件处理完成后,我希望将结果传递给回调函数,因此类中有下面3个函数: virtual void handler转载 2013-04-10 10:22:58 · 666 阅读 · 0 评论 -
C/C++大文件/数据网络传输方法总结
转载地址 : https://www.2cto.com/kf/201401/273290.html在C/C++网络编程中不免会遇到需要传输大数据、大文件的情况,而由于socket本身缓冲区的限制,大概一次只能发送4K左右的数据,所以在传输大数据时客户端就需要进行分包,在目的地重新组包。而实际上已有一些消息/通讯中间件对此进行了封装,提供了直接发送大数据/文件的接口;除此之外,利用共享目录,ftp,...转载 2018-03-22 16:51:22 · 17765 阅读 · 2 评论