linux网络编程
SprintfWater
My English name is SpringWater
展开
-
win7安装iis && HTTP 500错误怎么办?
win7安装iis一、进入Win7的 控制面板,选择左侧的 打开或关闭Windows功能 。二、下面这张图片把asp需要安装的服务都已经选择了,大家可以按照图片勾选功能。如需php,应该勾选CGI等。三、安装完成后,再次进入 控制面板,选择 管理工具,双击 Internet(IIS)管理器 选项,进入IIS设置。四、选择 Default Web Site,并双击转载 2012-11-23 15:26:39 · 2712 阅读 · 0 评论 -
fcntl的用法
功能描述:根据文件描述词来操作文件的特性。#include #include int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]fcntl()针对(文件)描述符提供控制。参数fd转载 2013-07-02 19:34:57 · 933 阅读 · 0 评论 -
setsockopt()用法(参数详细说明)
int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen);s(套接字): 指向一个打开的套接口描述字level:(级别): 指定选项代码的类型。SOL_SOCKET: 基本套接口IPPROTO_IP: IPv4套接口IPPROTO_IPV6: IPv6套接转载 2013-07-02 19:17:52 · 870 阅读 · 0 评论 -
select 非阻塞 sock服务端客户端代码实例
sever:#include #include #include #include #include #include #include #include #include #include #include #include #define MAXBUF 1024 typedef struct C转载 2013-07-03 14:50:58 · 2549 阅读 · 1 评论 -
linux下用select实现非阻塞socket
本文并非解释什么是非阻塞socket,也不是介绍socket API的用法, 取而代替的是让你感受实际工作中的代码编写。虽然很简陋,但你可以通过man手册与其它资源非富你的代码。请注意本教程所说的主题,如果细说,内容可以达到一本书内容,你会发现本教程很有用。 本教程内容如下: 1. 改变一个阻塞的socket为非阻塞模式。转载 2013-07-03 15:34:49 · 9093 阅读 · 1 评论 -
Linux Epoll介绍和程序实例
原文链接http://blog.csdn.net/sparkliang/article/details/4770655Linux Epoll介绍和程序实例1. Epoll是何方神圣?Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linu转载 2013-07-03 17:31:08 · 895 阅读 · 0 评论 -
glog函数调用出现c++:void value not ignored as it ought to be错误
下面是网上查到的问题分析**#: error: void value not ignored as it ought to be直译:“ void 值本应忽略,但没被忽略”。 看来是使用了 void 这个值。不能在表达式中使用 void 函数的值。1. 查看是否将 void 返回类型的函数赋值到返回值。2. 检查是否有c, c++ 混编,名字改编造成原创 2013-07-21 17:26:23 · 3470 阅读 · 0 评论 -
tcp状态迁移图
TCP正常建立和关闭的状态变化 TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做 四次握手。 建立连接 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收转载 2013-10-04 17:36:43 · 3114 阅读 · 0 评论 -
Linux多进程和线程同步的几种方式
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。1)互斥锁(mutex) 通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_转载 2013-10-07 22:44:20 · 4621 阅读 · 0 评论 -
hiredis示例代码example-ac.c的编译出现缺少ae的解决方法总结
方法一:直接利用redis的src文件夹下面的文件生成静态库,在编译的时候,将静态库用"-llibredis.a"的方式链接接进去具体实现可借鉴链接:http://blog.csdn.net/vah101/article/details/14057287 在hiredis目录下,有几段示例代码,其中example-ae是最诡异的,直接用gcc编译报了很多错,提示大部分ae函数找原创 2014-03-11 19:13:01 · 3084 阅读 · 0 评论 -
我对线程条件变量的初步探究
下面这份代码是我的书写方式:static bool alive = true;static int count = 0;pthread_mutex_t mutex;pthread_cond_t cond;void producer(){ pthread_mutex_lock(&mutex); //加互斥锁原创 2014-03-13 22:05:10 · 1046 阅读 · 0 评论 -
从分布式系统角度的回答阻塞非阻塞与同步异步的区别
“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调转载 2014-03-10 09:54:24 · 2909 阅读 · 0 评论 -
内存结构体对齐总结
结构体对齐目的:1:访问速度:为了不让同一个变量(同时包括整个结构变量和结构体内部成员变量)分布在多个cache line上,然后两次访问内存。2:平台限制:有些平台不能随意读取某个偏移的地址变量如结构体:struct AT{ char a; char b; int c; char d;};因为cpu是以cachel原创 2015-01-27 15:52:44 · 2105 阅读 · 0 评论 -
自动ssh登录的几种方法
自动ssh登录的几种方法1. 自动ssh/scp方法==A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux在A上运行命令:# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)# ssh root@192.168.转载 2015-01-12 16:00:08 · 1069 阅读 · 0 评论 -
[linux] 将socket设置为非阻塞(non-blocking)
有一个非常有迷惑性的做法是:u_long has = 1;ioctl(m_sock, FIONBIO , &has);这个函数会非常无耻的返回你success,但是它实际上很可能什么也没做。正确的做法应该是使用fcntl:int flags = fcntl(m_sock, F_GETFL, 0);fcntl(m_sock, F_SETFL, flags|O_NONB转载 2013-07-03 11:31:50 · 2797 阅读 · 0 评论 -
linux下ioctl函数学习
一、 什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控转载 2013-04-29 19:01:36 · 934 阅读 · 0 评论 -
太网和IEEE 802.3区别
虽然以太网和IEEE 802.3在很多方面都非常相似,但是两种规范之间仍然存在着一定的区别。以太网所提供的服务主要对应于OSI参考模型的第一和第二层,即物理层和逻辑链路层;而IEEE 802.3则主要是对物理层和逻辑链路层的通道访问部分进行了规定。此外,IEEE 802.3没有定义任何逻辑链路控制协议,但是指定了多种不同的物理层,而以太网只提供了一种物理层协议。所以从某种程度上来说转载 2013-01-13 13:30:22 · 2786 阅读 · 0 评论 -
解析HTTP报文格式
一.浏览器端(客户端)向WEB服务器端访问页面的过程和HTTP协议报文的格式。 基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接: 1. 创建TCP套接字连接 客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定,WEB端的套接字侦听端口一般是80。 2.转载 2013-03-06 15:08:51 · 5582 阅读 · 0 评论 -
linux下编程实现将域名地址转换为IP地址
struct hostent结构体这个数据结构是这样的: struct hostent { const char *h_name; // official name of host char **h_aliases; // alias list short h_addrtype; // host address t转载 2013-03-07 12:27:46 · 6160 阅读 · 0 评论 -
保留地址的分配
根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。一个机构网络要连入Internet,必须申请公用IP地址。但是考虑到网络安全和内部实验等特殊情况,在IP地址中专门保留了三个区域作为私有地址,其地址范围如下:转载 2013-02-27 14:08:52 · 1209 阅读 · 0 评论 -
OSI七层协议模型和TCP/IP四层模型比较
TCP/IP四层模型TCP/IP参考模型 ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。图2-1 TCP/IP参考模型 2.1 TCP/IP参考模型的层次结构 TCP/IP协议栈是美国国防部高级研究转载 2013-04-02 14:51:00 · 59745 阅读 · 1 评论 -
巧用MapReduce+HDFS,海量数据去重的五大策略
MapReduceHDFSHadoop存储HbaseDedoop云计算摘要:随着收集到数据体积的激增,去重无疑成为众多大数据玩家面对的问题之一。重复数据删除在减少存储、降低网络带宽方面有着显著的优势,并对扩展性有所帮助。在存储架构中,删除重复数据的常用方法包括哈希、二进制比较和增量差分;而本文专注的是使用MapReduce和HDFS对数据进行去重。随着存储数据信息量的飞速增长,越来越多转载 2013-03-26 16:26:56 · 1352 阅读 · 0 评论 -
nautilus-connect-server
nautilus-connect-server指令以对话框方式与服务器建立链接原创 2012-12-20 15:05:11 · 896 阅读 · 0 评论 -
将本机80号端口打开
将本机80号端口打开:federa:su -c 'iptables -I INPUT 1 -p TCP --dport 80 -j ACCEPT'ubuntu:sudo iptables -I INPUT 1 -p TCP --dport 80 -j ACCEPT原创 2013-02-27 14:02:56 · 781 阅读 · 0 评论 -
Linux网络编程实现非阻塞I/O的三种方法
套接字的默认行为为:“一直到阻塞到请求动作完成为止”。比如recv函数或者accept函数在收到数据之前会默认一直处于阻塞,含有阻塞函数的进程会在阻塞期间被操作系统挂起。有三种方法实现非阻塞套接字、异步I/O和超时。非阻塞套接字实现非阻塞套接字的方法就是更改套接字的行为,使得所有的调用都是非阻塞的。用fcntl函数就能更改套接字行为int fcntl(int s转载 2013-03-12 15:31:56 · 2883 阅读 · 0 评论 -
Linux操作系统的网络多播IP技术
多播广播是用于建立分步式系统:例如网络游戏、ICQ聊天构建、远程视频会议系统的重要工具。使用多播广播的程序和UDP向单个介绍方发送信息的程序相似。区别在于多播广播程序使用特殊的多播IP地址。 目录 织梦内容管理系统 一、配置Linux支持多播IP 二、使用Linux多播IP广播数据 例如本地计算机的的IP地址是:127.0.0.1二它的多播地址是: 224.0.0.1转载 2013-02-27 22:20:45 · 1069 阅读 · 0 评论 -
shutdown和close的区别
当所有的数据操作结束以后,你可以调用close()函数来释放该socket,从而停止在该socket上的任何数据操作:close(sockfd); 你也可以调用shutdown()函数来关闭该socket。该函数允许你只停止在某个方向上的数据传输,而一个方向上的数据传输继续进行。如你可以关 闭某socket的写操作而允许继续在该socket上接受数据,直至读入所有数据。转载 2013-04-22 22:46:06 · 747 阅读 · 0 评论 -
socket中select函数的使用
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所转载 2013-04-24 18:56:26 · 919 阅读 · 0 评论 -
TCP/IP协议栈的基本工作原理
TCP/IP是互联网的核心协议,也是大多数网络应用的核心协议。就前面一段时间面试中问到的TCP/IP问题,这里给出一个简单的小结。 TCP由RFC793、RFC1122、RFC1323、RFC2001、RFC2018以及RFC2581定义。 (1) TCP概述a. TCP提供的是面向连接的全双工服务。TCP所有的数据会匹配到由源地址,目的地址,源端口,目的端口构成的一个TC转载 2013-04-18 22:46:45 · 1015 阅读 · 0 评论 -
多队列网卡特性
多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析转载 2015-01-23 10:44:52 · 1802 阅读 · 0 评论