E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
LINUX网络编程
linux网络编程
之TCP/IP基础(一):TCP/IP协议栈与数据报封装
一、ISO/OSI参考模型OSI(opensysteminterconnection)开放系统互联模型是由ISO(InternationalOrganizationforStandardization)国际标准化组织定义的网络分层模型,共七层,如下图。物理层(PhysicalLayer):物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层中数据传输的单位为比特(bit)。属
Simba888888
·
2013-05-21 20:00
数据包封装
tcpip协议栈
整理:
Linux网络编程
之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddrstructsockaddr{unsigned short sa_family; /*addressfamily,AF_xxx*/char sa_data[14]; /*14bytesofprotocoladdress*/};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字
changli_90
·
2013-05-20 17:00
【
Linux网络编程
笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇
上篇笔记主要介绍了与TIME_WAIT相关的基础知识,本文则从实践出发,说明如何解决文章标题提出的问题。1.查看系统网络配置和当前TCP状态 在定位并处理应用程序出现的网络问题时,了解系统默认网络配置是非常必要的。以x86_64平台Linuxkernelversion2.6.9的机器为例,ipv4网络协议的默认配置可以在/proc/sys/net/ipv4/下查看,其中与TCP协
slvher
·
2013-05-17 21:00
linux
programming
NetWork
tcpip
【
Linux网络编程
笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇
最近遇到一个线上报警:服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接,在解决过程中,通过查阅经典教材和技术文章,加深了对TCP网络问题的理解。作为笔记,记录于此。 备注:本文主要介绍TCP编程中涉及到的众多基础知识,关于实际工程中对由TIME_WAIT引发的不能建立新连接问题的解决方法将在下篇笔记中给出。1.实际问题 初步查看发现,无法对外新建TCP连接时
slvher
·
2013-05-17 21:00
linux
网络编程
tcpip
linux网络编程
系列-select和epoll的区别
select和epoll属于I/O多路复用模型,用于持续监听多个socket,获取其IO事件。select(轮询)该模型轮询各socket,不管socket是否活跃,随着socket数的增加,性能逐渐下降。#include #include intselect(intmaxfdpl,fd_set*readset,fd_set*writeset,fd_set*exceptset,conststruc
whuqin
·
2013-05-09 21:00
Linux网络编程
-
一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中
duola_rain
·
2013-05-09 13:00
linux网络编程
系列-TCP及常用接口分析
TCP编程示例图:头文件:常用头文件"arpa/inet.h","sys/socket.h","netinet/in.h"函数原型:intsocket(intfamily,inttype,intprotocol) family:通信协议族,IPprotocolfamily为AF_INET(PF_INET),值是2;type:套接字类型(连接类型)。SOCK_STREAM(1)为Sequenced,
whuqin
·
2013-05-09 11:00
Linux网络编程
系列-TCP状态分析
TCP三路握手(SYN、ACK):TCP终止连接(四次握手,2个FIN、2个ACK):TCP的TIME_WAIT状态:Who-主动关闭方,When-接收到被动端的FIN,Why-实现终止TCP全双工连接的可靠性(可能需要重发ACK)/允许老的重复分节在网络中消失,HowLong-2MSL(1m-4m)避免TIME_WAIT过多的办法:修改/etc/sysctl.conf后,执行/sbin/sysc
whuqin
·
2013-05-09 10:00
linux网络编程
:并发服务器的模型
这篇博客主要是参考了http://renwen0524.blog.163.com/blog/static/7301945520116116016141/,这篇博客把
linux网络编程
的并发服务器的模型整理得很详细了
liangxanhai
·
2013-05-03 20:00
Linux网络编程
入门(经典)
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.
gqb666
·
2013-05-03 09:00
网络
Linux网络编程
tcpip
linux网络子系统
(三)
Linux网络编程
--3. 服务器和客户机的信息函数
这一章我们来学习转换和网络方面的信息函数. 3.1字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的,比如i386芯片是低字节在内存地址的低端,高字节在高端,而alpha芯片却相反.为了统一起来,在Linux下面,有专门的字节转换函数. unsignedlong inthtonl(unsignedlong inthostlong)unsignedshortinthto
leoleocmm
·
2013-05-02 07:00
(二)
Linux网络编程
--初等网络函数介绍(TCP)
Linux系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket和其它几个函数的调用, 会返回一个通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作,这就是linux的设备无关性的好处. 我们可以通过向描述符读写操作实现网络之间的数据交流. (一)socket intsocket(intdomain,inttype,intprotocol) do
leoleocmm
·
2013-05-02 07:00
(十)
Linux网络编程
--10. 原始套接字
我们在前面已经学习过了网络程序的两种套接字(SOCK_STREAM,SOCK_DRAGM).在这一章 里面我们一起来学习另外一种套接字--原始套接字(SOCK_RAW). 应用原始套接字,我们可以编写出由TCP和UDP套接字不能够实现的功能. 注意原始套接字只能够由有 root权限的人创建. 10.1 原始套接字的创建 intsockfd(AF_INET,SOCK_RAW,protocol)可以
leoleocmm
·
2013-05-02 07:00
(九)
Linux网络编程
--9. 服务器模型
学习过《软件工程》吧.软件工程可是每一个程序员"必修"的课程啊.如果你没有学习过, 建议你去看一看. 在这一章里面,我们一起来从软件工程的角度学习网络编程的思想.在我们写程序之前, 我们都应该从软件工程的角度规划好我们的软件,这样我们开发软件的效率才会高. 在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最常用的服务
leoleocmm
·
2013-05-02 07:00
(八)
Linux网络编程
--8. 套接字选项
有时候我们要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要控制套接字的选项了. 8.1getsockopt和setsockopt intgetsockopt(intsockfd,intlevel,intoptname,void*optval,socklen_t*optlen)intsetsockopt(intsockfd,intlevel,intoptname,constvoid*opt
leoleocmm
·
2013-05-02 07:00
(七)
Linux网络编程
--7. TCP/IP协议
你也许听说过TCP/IP协议,那么你知道到底什么是TCP,什么是IP吗?在这一章里面,我们一起来学习这个目前网络上用最广泛的协议. 7.1 网络传输分层 如果你考过计算机等级考试,那么你就应该已经知道了网络传输分层这个概念.在网络上,人们为了传输数据时的方便, 把网络的传输分为7个层次.分别是:应用层,表示层,会话层,传输层,网络层,数据链路层和物理层.分好了层以后,传输数据时, 上
leoleocmm
·
2013-05-02 07:00
(六)
Linux网络编程
--6. 高级套接字函数
在前面的几个部分里面,我们已经学会了怎么样从网络上读写信息了.前面的一些函数(read,write)是网络程序里面最基本的函数.也是最原始的通信函数.在这一章里面,我们一起来学习网络通信的高级函数.这一章我们学习另外几个读写函数. 6.1recv和send recv和send函数提供了和read和write差不多的功能.不过它们提供 了第四个参数来控制读写操作. intrecv(i
leoleocmm
·
2013-05-02 07:00
(五)
Linux网络编程
--5. 用户数据报发送
我们前面已经学习网络程序的一个很大的部分,由这个部分的知识,我们实际上可以写出大部分的基于TCP协议的网络程序了.现在在 Linux下的大部分程序都是用我们上面所学的知识来写的.我们可以去找一些源程序来参考一下.这一章,我们简单的学习一下基于UDP协议的网络程序. 5.1 两个常用的函数 intrecvfrom(intsockfd,void*buf,intlen,unsignedintflag
leoleocmm
·
2013-05-02 07:00
(四)
Linux网络编程
--4. 完整的读写函数
一旦我们建立了连接,我们的下一步就是进行通信了.在Linux下面把我们前面建立的通道看成是文件描述符,这样服务器端和客户端进行通信时候,只要往文件描述符里面读写东西了. 就象我们往文件读写一样. 4.1 写函数write ssize_twrite(intfd,constvoid*buf,size_tnbytes)write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数
leoleocmm
·
2013-05-02 07:00
(二)
Linux网络编程
--初等网络函数介绍(TCP)
(二)
Linux网络编程
--初等网络函数介绍(TCP) Linux系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket和其它几个函数的调用, 会返回一个 通讯的文件描述符
leoleocmm
·
2013-05-02 07:00
(三)
Linux网络编程
--3. 服务器和客户机的信息函数
这一章我们来学习转换和网络方面的信息函数. 3.1 字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端,高字节在高端,而alpha芯片却相反. 为了统一起来,在Linux下面,有专门的字节转换函数. unsignedlong inthtonl(unsignedlong inthostlong)unsignedshorti
leoleocmm
·
2013-05-02 07:00
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.
leoleocmm
·
2013-05-02 07:00
Linux网络编程
入门
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端
m6830098
·
2013-04-26 08:00
Linux 网络编程入门
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端
nkguohao
·
2013-04-25 21:00
linux
网络编程
socket编程
ioctl 函数与网络接口
http://blog.csdn.net/wfwfunway/article/details/5737416本文只讨论ioctl在
linux网络编程
中的应用 #includeintioctl(intfd
cjsycyl
·
2013-04-24 14:00
Linux网络编程
epoll模型
#include #include #include #include #include #include #include #include #include #include using namespace std; #define LISTENQ 5 #define OPEN_MAX 1024 #define SERV_PORT 10
u013805103
·
2013-04-23 08:00
Linux网络编程
poll模型
//分发进程 //listen #include #include #include #include #include #include #include #include #include #define LISTENQ 5 #define OPEN_MAX 1024 #define SERV_PORT 10088 #define M
u013805103
·
2013-04-23 08:00
Linux网络编程poll模型
Linux网络编程
中的几组类似功能的区别
1.bzero与memsetcharbuff[1024];memset(buff,0,sizeof(buff));bzero(buff,sizeof(buff));structsockaddr_inaddrmemset(&addr,0,sizeof(addr));bzero(buff,sizeof(buff));参考《UNIX网络编程卷1:套接字联网API第3版》1.2的解释:bzero不是ANS
·
2013-04-18 21:00
linux网络编程
之广播编程
广播方式主要是指使用UDP套接口发送数据,发送数据的目标地址不是普通的地址,而是所指定网络的广播地址。 什么是广播地址?是指IP地址中主机地址部分全为1的IP地址。下面是一个广播发送简单流程图。如何实现广播发送?一般情况下使用sendto函数只能向非广播地址发送数据,如果要发送广播数据就必须要告诉内核,可以通过设置套接字属性为SO_BROADCAST来坐到这一点。inton=1;setsocko
qdlovecsj
·
2013-04-15 20:00
linux
网络编程
linux网络编程
多进程并发服务器
服务器端代码#include #include #include #include #include #include #include #include #include #include #definePORT1234 #defineMAXSIZE1024 structARG { intconnfd; structsockaddr_inclientAddr; }; voidsavedat
qdlovecsj
·
2013-04-12 14:00
c
linux
网络编程
linux网络编程
多进程并发服务器
服务器端:#include #include #include #include #include #include #include #include #definePORT1234 #defineMAXSIZE1024 staticintclientProcess(intconnfd,structsockaddr_inclientSock) { intnum=0; inti=0; char
qdlovecsj
·
2013-04-12 13:00
c
linux
网络编程
【C语言】
linux网络编程
—hostent结构体,gethostbyname的使用
使用gethostbyname函数获取hostent域名结构体最简单的情况,这里面不包括出错处理,异常等的处理:#include #include #include #include intmain(intargc,char**argv) { structhostent*host; printf("%d\n",argc); char*name=*(argv+1); host=gethost
chenglibin1988
·
2013-04-10 15:00
[置顶]
Linux网络编程
必看书籍推荐
首先要说讲述计算机网络和TCP/IP的书很多。 先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属AndrewS.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影响。。。。 第五版是
weiqubo
·
2013-04-08 11:00
Linux网络编程
之TCP通信
客户端代码client.cpp#include #include #include #include #include #include #include intmain(){ //创建一个socket intsock_fd=socket(AF_INET,SOCK_STREAM,0); //创建好地址 structsockaddr_inaddress; address.sin_family=
gaotong2055
·
2013-04-07 21:00
Linux网络编程
之TCP通信
客户端代码 client.cpp #include <stdlib.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h> #inc
从此醉
·
2013-04-07 21:00
linux
整理:
Linux网络编程
之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddrstructsockaddr{unsignedshortsa_family;/*addressfamily,AF_xxx*/charsa_data[14];/*14bytesofprotocoladdress*/};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字节协议地址。此数据结构用做bind、conne
从此醉
·
2013-04-07 17:34
Linux
整理:
Linux网络编程
之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddrstructsockaddr{unsignedshortsa_family;/*addressfamily,AF_xxx*/charsa_data[14];/*14bytesofprotocoladdress*/};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字节协议地址。此数据结构用做bind、conne
从此醉
·
2013-04-07 17:34
Linux
整理:
Linux网络编程
之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddrstructsockaddr{unsigned short sa_family; /*addressfamily,AF_xxx*/char sa_data[14]; /*14bytesofprotocoladdress*/};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字
gaotong2055
·
2013-04-07 17:00
整理:
Linux网络编程
之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddr struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ }; sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。 sa_data
从此醉
·
2013-04-07 17:00
linux
Linux网络编程
一步一步学-epoll同时处理海量连接的代码
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #defineMAXBUF1024 #defineMAXEPOLLSIZE10000 /* setnonb
·
2013-03-28 16:00
proxy_epoll源代码分析
linux网络编程
入门的源码分析资料,附源码
代理服务器源代码分析--谈谈如何学习
linux网络编程
Linux是一个可靠性非常高的操作系统.Linux发行版一直被用来作为服务器的操作系统,并且已经在该领域中占据重要地位。
gfsfg8545
·
2013-03-18 14:00
代理服务器
epoll
Linux网络编程
后台开发
Linux网络编程
实现非阻塞I/O的三种方法
套接字的默认行为为:“一直到阻塞到请求动作完成为止”。比如recv函数或者accept函数在收到数据之前会默认一直处于阻塞,含有阻塞函数的进程会在阻塞期间被操作系统挂起。有三种方法实现非阻塞套接字、异步I/O和超时。非阻塞套接字实现非阻塞套接字的方法就是更改套接字的行为,使得所有的调用都是非阻塞的。用fcntl函数就能更改套接字行为int fcntl(int socket, int command
SprintfWater
·
2013-03-12 15:00
Linux网络编程
入门 (转载)
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中
yxnyxnyxnyxnyxn
·
2013-02-22 09:00
(自用型)windows/
linux网络编程
通用跨平台头文件定义
#ifndef_SOCKET_TYPE_H #define_SOCKET_TYPE_H #ifdef_WIN32 #include #defineERRNO(WSAGetLastError()) #defineNEEDBLOCKWSAEWOULDBLOCK typedefintsocklen_t; #else #include #include #include #include #includ
jwybobo2007
·
2013-02-19 09:00
linux网络编程
之服务端程序(二)
/* *server.c * *Createdon:Nov18,2012 *Author:fsxchen *Version2:能够捕捉子进程结束信号SIGCHLD,防止僵尸进程的生成 *前一个版本,子进程结束,僵尸进程生成 */ #include #include #include #include #include #include #include #include //#include"
fsxchen
·
2013-02-14 23:00
linux网络编程
之客户端程序
/* *client.c * * Createdon:Oct29,2012 * Author:fsxchen *asampleclientforserver */#include#include#include#include#include#include#definePORT8888voidprocess_conn_client(ints);intmain(intargc,char*arg
fsxchen
·
2013-02-08 00:00
linux网络编程
之服务端程序
/* *server.c * * Createdon:Oct29,2012 * Author:fsxchen *//** *asampleserver */#include#include#include#include#include#include#include#include#definePORT8888#defineBACKLOG2voidprocess_conn_server(in
fsxchen
·
2013-02-08 00:00
Linux网络编程
之connect函数分析
在一个CLIENT/SERVER模型的网络应用中,客户端的调用序列大致如下:socket->connect->recv/send->close其中socket没有什么可疑问的,主要是创建一个套接字用于与服务端交换数据,并且通常它会迅速返回,此时并没有数据通过网卡发送出去,而紧随其后的connect函数则会产生网络数据的发送,TCP的三次握手也正是在此时开始,connect会先发送一个SYN包给服务
david_xtd
·
2013-02-05 11:02
socket
Linux
C/CPP函数
Linux网络编程
之connect函数分析
在一个CLIENT/SERVER模型的网络应用中,客户端的调用序列大致如下: socket->connect->recv/send->close 其中socket没有什么可疑问的,主要是创建一个套接字用于与服务端交换数据,并且通常它会迅速返回,此时并没有数据通过网卡发送出去,而紧随其后的connect函数则会产生网络数据的发送,TCP的三次握手也正是在此时开始,connec
David_xtd
·
2013-02-05 11:00
Linux网络编程
必看书籍推荐
本文转自大神21aspnet的文章:
Linux网络编程
必看书籍推荐网址:http://blog.csdn.net/21aspnet/article/details/6694485#另外插句:windows
hugoo_hu
·
2013-01-31 13:18
书籍
linux
网络
上一页
30
31
32
33
34
35
36
37
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他