DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2014年6月23日

摘要: 一、GCC(GNU Compiler Collection)是linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活。它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada g++是GCC中的一个工具,专门来编译C++语言的。 GCC... 阅读全文
posted @ 2014-06-23 17:51 DoubleLi 阅读(2460) 评论(0) 推荐(0)

摘要: 先来谈谈为什么会出现select函数,也就是select是解决什么问题的?平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好。这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设... 阅读全文
posted @ 2014-06-23 17:15 DoubleLi 阅读(4829) 评论(0) 推荐(0)

摘要: 关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的;我打个很简单的比方,如果你调用socket send函数时;如果是阻塞模式下:send先比较待发送数据的长度len和套接字s的发送缓冲的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;如果len... 阅读全文
posted @ 2014-06-23 16:23 DoubleLi 阅读(532) 评论(0) 推荐(0)

摘要: 设置connect超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案。偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字进行管理"(《Windows... 阅读全文
posted @ 2014-06-23 16:19 DoubleLi 阅读(10913) 评论(0) 推荐(1)

摘要: linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别 UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量。linux: struct... 阅读全文
posted @ 2014-06-23 16:18 DoubleLi 阅读(36658) 评论(0) 推荐(1)

摘要: 主要难点在于设置recv()与send()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码:[cpp]view plaincopyprint?#include#include#include#include#include#include#ifdef_WIN32///包含winsocket... 阅读全文
posted @ 2014-06-23 16:16 DoubleLi 阅读(1466) 评论(0) 推荐(0)

摘要: 1.TCP保活的必要性1)很多防火墙等对于空闲socket自动关闭2)对于非正常断开,服务器并不能检测到.为了回收资源,必须提供一种检测机制.2.导致TCP断连的因素如果网络正常,socket也通过close操作来进行优雅的关闭,那么一切完美.可是有很多情况,比如网线故障,客户端一侧突然断电或者崩溃... 阅读全文
posted @ 2014-06-23 15:30 DoubleLi 阅读(21716) 评论(3) 推荐(3)

摘要: #include #include #include #include #include #include #include #define BUFFER 800#define SERV_PORT 3333int main(){ int sockfd,n; socklen_t len; ... 阅读全文
posted @ 2014-06-23 14:29 DoubleLi 阅读(502) 评论(0) 推荐(0)

摘要: 一.Select 函数详细介绍 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时... 阅读全文
posted @ 2014-06-23 14:23 DoubleLi 阅读(618) 评论(0) 推荐(0)

摘要: // all.h// 2005/06/20,a.m. wenxy#ifndef _ALL_H#define _ALL_H#include #include #include #include #include #include #include #include #include // ------... 阅读全文
posted @ 2014-06-23 13:49 DoubleLi 阅读(3548) 评论(0) 推荐(0)

摘要: 1。通过已经连接的socket文件获取:[cpp]view plaincopyintgetpeermac(intsockfd,char*buf){intret=0;structarpreqarpreq;structsockaddr_indstadd_in;socklen_tlen=sizeof(st... 阅读全文
posted @ 2014-06-23 13:48 DoubleLi 阅读(13412) 评论(1) 推荐(0)

摘要: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int getPeerMacb... 阅读全文
posted @ 2014-06-23 10:34 DoubleLi 阅读(7153) 评论(0) 推荐(0)