C++
文章平均质量分 83
Acettest
这个作者很懒,什么都没留下…
展开
-
关于输入的一些问题
#include int main(){ int sum =0, value=0; while (std::cin>>value) { sum+=value; std::coutstd::endl"the sumption of this is : "std::endl;原创 2017-01-09 06:56:57 · 217 阅读 · 0 评论 -
TCP异常断开检测
TCP异常断开是指在突然断电,直接拔网线等等情况下,如果通信双方没有进行数据发送通信等处理的时候,无法获知连接已经断开的情况. 在通常的情况下,为了使得socket通信不受操作系统的限制,需要自己在应用层实现心跳包机制,来检查异常断开的情况,一般的方式就是服务器在一段时间没有收到客户端数据包时,定时发包,然后客户端回应,如果已经出现异常断开则服务器接收会返回错误,而客户端在指定时间内没有转载 2017-06-12 14:44:37 · 1593 阅读 · 0 评论 -
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回值 2、阻塞模式与非阻塞模式下write的返回值各代表什么意思?有没有区别?阻塞与非阻塞write返回值没有区分,都是 0发送数据大小,特别:返回值 3、阻塞模式下read返回值 非阻塞模式下read返回值转载 2017-06-23 17:14:11 · 262 阅读 · 0 评论 -
tcp侦测异常断开
1. TCP保活的必要性1) 很多防火墙等对于空闲socket自动关闭2) 对于非正常断开, 服务器并不能检测到. 为了回收资源, 必须提供一种检测机制. 2. 导致TCP断连的因素如果网络正常, socket也通过close操作来进行优雅的关闭, 那么一切完美. 可是有很多情况, 比如网线故障, 客户端一侧突然断电或者崩溃等等, 这些情况server并不能转载 2017-06-12 13:21:49 · 459 阅读 · 0 评论 -
关于wireshark抓包的那点事儿
关于wireshark抓包的那点事儿 三次握手172.18.254.177为客户 111.13.2.158为服务端1、主动打开。发送SYN,协商window size 、TCP MSS seq=0 len=0 MSS=1460 win=65535最大窗口大小 客户端为syn_sent 服务端为syn_recv2、接收到syn。转载 2017-06-12 09:53:32 · 2172 阅读 · 0 评论 -
CGridCtrl中调整滚动条到指定行(Row)
int nPos = (int)((float)(nRow-1) / GetRowCount() * 1000);//int nRow为要滚动到的那一行 float fPos = (float)nPos / 1000; SCROLLINFO scrollInfo; GetScrollInfo(SB_VERT, &scrollInfo); scroll转载 2017-06-22 08:24:00 · 2502 阅读 · 0 评论 -
windows socket错误码及出错原因
本文转自http://blog.csdn.net/khler/archive/2007/07/11/1685023.aspxWindows Sockets在头文件winsock.h中定义了所有的错误码,它们包括以“WSA”打头的Windows Sockets实现返回的错误码和Berkeley Sockets定义的错误码全集。定义Berkeley Sockets错误码是为了确保原有软件的转载 2017-06-09 18:30:31 · 5860 阅读 · 0 评论 -
如何判断一个SOCKET连接是否已经断开
1. 根据ERRNO和recv结果进行判断在UNIX/Linux下,非阻塞模式SOCKET可以采用recv+MSG_PEEK的方式进行判断,其中MSG_PEEK保证了仅仅进行状态判断,而不影响数据接收对于主动关闭的SOCKET, recv返回-1,而且errno被置为9(#define EBADF 9 /* Bad file number */)或104 (#define EC转载 2017-06-09 18:11:06 · 6321 阅读 · 0 评论 -
socket recv()函数返回0的一种情况
假设使用Socket基于TCP通信协议进行C/S通信编程,客服端已经成功与服务端建立tcp连接,并且可以正常进行收发数据。当一段时间后,服务端的程序如果调用closesocket(sClient);WSACleanup();函数关闭socket, 那么客户端的recv()将会返回0;如果服务端没有调用closesocket(sClient);而只调用WSACleanup()转载 2017-06-21 11:14:03 · 14109 阅读 · 0 评论 -
tcp断开侦测
http://blog.stephencleary.com/2009/05/detection-of-half-open-dropped.html转载 2017-06-20 10:57:17 · 196 阅读 · 0 评论 -
com编程推荐博客
http://blog.sina.com.cn/s/blog_5698c05f0100lp2e.html原创 2017-06-02 09:56:50 · 213 阅读 · 0 评论 -
C#调用C++动态库(dll)
在实际软件开发过程中,由于公司使用了多种语言开发,在C#中可能需要实现某个功能,而该功能可能用其他语言已经实现了,那么我们可以调用其他语言写好的模块吗?还有就是,由于C#开发好的项目,我们可以利用reflector等反编译工具反编译出其源代码,所以对于一些核心算法,我们不希望被别人知道,因此为了增强代码的安全性,我们需要将一些核心算法用C或C++来编写,然后用C#来调用这些已经写好的接口。在面对以原创 2017-06-01 17:12:31 · 621 阅读 · 0 评论 -
基于C++的OPC自定义同步数据访问技术
专辑:摘要: 主要阐述在C++语言环境中编程,实现通过OPC SERVER自定义同步方式访问PLC中数据的技术。关键词: C++;OPC;自定义;同步中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2011)0210071-010 引言OPC是一种工业标准,包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。OPC现在已成为工业界系统互联的缺省转载 2017-06-05 13:02:23 · 3753 阅读 · 0 评论 -
MFC中设置socket超时
int nNetTimeout=1000;//1秒,//设置发送超时setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO, (char *)&nNetTimeout,sizeof(int));//设置接收超时setsockopt(socket,SOL_SOCKET,SO_RCVTIMEO, (char *)&nNetTimeout,sizeof(in转载 2017-04-24 11:48:00 · 1285 阅读 · 0 评论 -
c++ socket 异步编程
在网络通讯中,由于网络拥挤或一次发送的数据量过大等原因,经常会发生交换的数据在短时间内不能传送完,收发数据的函数因此不能返回,这种现象叫做阻塞。 Winsock对有可能阻塞的函数提供了两种处理方式:阻塞和非阻塞方式。阻塞模式 在阻塞方式下,收发数据的函数在被调用后一直要到传送完毕或者出错才能返回。在阻塞期间,被阻的函数不会断调用系统函数GetMessage()来保持消息循环翻译 2017-04-24 07:57:59 · 7955 阅读 · 0 评论 -
c++ socket编程
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设转载 2017-04-24 07:47:45 · 254 阅读 · 0 评论 -
vc串口通讯
转载地址:http://www.jizhuomi.com/software/309.html在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次转载 2017-06-25 23:31:07 · 276 阅读 · 0 评论