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网络编程
--网络知识介绍
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的
·
2015-10-21 12:16
linux
Linux下简单的socket编程
details/4554816分类: 网络 2009-09-15 14:50 98人阅读 评论(0) 收藏 举报 其实,有过Window网络编程经验的人,会很快的熟悉简单的
Linux
·
2015-10-21 12:14
socket编程
Linux网络编程
一步一步学+基础
转自:http://blogold.chinaunix.net/u1/48325/showart_413841.html ·
Linux网络编程
基础(一)·
Linux网络编程
基础
·
2015-10-21 12:27
linux
Linux网络编程
入门
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的
·
2015-10-21 12:32
linux
Linux网络编程
---TCP三次握手,SYN洪水攻击,
一、建立TCP连接需要三次握手才能建立,在认识TCP三次握手前,我们先来看看TCP报文首部结构:源端口和目的端口字段:各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现序号字段:占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段(ack):占4字节,是期望收到对方的下一个报文段的
zthgreat
·
2015-10-20 19:53
【Linux网络编程】
Linux网络编程
---ICMP协议分析及ping程序实现
一、IP协议IP协议是TCP/IP协议族所依赖的传送机制,提供无连接不可靠的数据报服务。IP的无连接特性意味着每个IP报文都是独立寻径的,因此当一个源主机发送多个报文给同一目的主机时,这些报文可能出现错序,丢失或者部分报文产生错误等现象,因此为了保证数据传送的可靠性,必须在IP层之上通过TCP协议提供有序,带确认数据的传输服务。1.IP协议格式IP报文由报文头部和数据两部分构成,其中头部信息格式如
zthgreat
·
2015-10-10 19:41
【Linux网络编程】
Linux网络编程
--epoll 模型原理详解以及实例
1.简介LinuxI/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux2.6内核中有提高网络I/O性能的新方法,即epoll。epoll是什么?按照man手册的说法是为处理大批量句柄而作了改进的poll。要使用epoll只需要以下的三个系统函数调用:epoll_create(2),epoll_ctl(2),epoll_wait(2)。2.select模型
u010193457
·
2015-10-08 16:00
epoll
网络编程
I-O多路复用
epoll-wait
epoll-ctl
Linux网络编程
---I/O多路复用之epoll
实现一个基本的流式套接字客户端/服务器通信程序,客户端和服务器按如下步骤交互:(1)客户端向服务器发出日期时间请求字符串,如:%D%Y%A%T等。(2)服务器从网络接收到日期时间请求字符串后,根据字符串格式生成对应的日期时间值返回给客户端。二、事件I/O在前面用select函数有效的解决了多个I/O端口的复用问题,但是select函数存在两个缺陷:一是进程所能同时打开的文件描述符个数受FD_SET
zthgreat
·
2015-10-05 17:47
【Linux网络编程】
Linux网络编程
---I/O多路复用 之 select
实现一个基本的流式套接字客户端/服务器通信程序,客户端和服务器按如下步骤交互:(1)客户端向服务器发出日期时间请求字符串,如:%D%Y%A%T等。(2)服务器从网络接收到日期时间请求字符串后,根据字符串格式生成对应的日期时间值返回给客户端。在前面我们用了单进程和多进程来简单实现这个程序,通过多进程会比单进程占用更多的系统资源,所以希望单进程也能具有为多个客户端同时提供服务的能力,通过Linux系统
zthgreat
·
2015-09-27 19:02
【Linux网络编程】
backlog参数与SYN Flood攻击
在
linux网络编程
中,使用listen函数监听套接字,在linux中man其用法,第2个参数解释如下:The backlog argument defines the maximum length to
abcdefghig
·
2015-09-17 00:00
linux网络编程
之udp模板
在TCP中,客户端调用connect函数会向服务器端触发一个TCP的3次握手过程,去建立一条TCP连接;而在UDP中,客户端调用该函数主要的作用是告诉后面将要调用的recvfrom函数,仅仅只接受在connect函数中指明的服务器发来的数据,这样当后面调用recvfrom时最后两个参数就可以置为NULL了。也就说对UDP编程来说,客户端调用connect是可选的:如果调用了connect函数,re
lidonghat
·
2015-09-16 13:00
linux网络编程
之tcp模板
/*client*/ #include #include #include #include #include #include #include #include intmain(intargc,char*argv[]) { intportnumber=0; intsockfd=-1; structhostent*host; structsockaddr_inserveraddr; ch
lidonghat
·
2015-09-16 13:00
tcp
socket
linux网络编程
中常用的辅助函数
一、字节序转换:unsignedlong inthtonl(unsignedlong inthostlong)unsignedshortinthtons(unisgnedshortinthostshort)unsignedlong intntohl(unsignedlong intnetlong)unsignedshortintntohs(unsignedshortintnetshort)其中:h
lidonghat
·
2015-09-16 10:00
网络编程
【
linux网络编程
】网络字节序、地址转换
网络字节序故事的起源“endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。我们一般将“endian”翻译成“字节序”,将 Big-Endian 和Little-Endian 称作“大端格式”和“小端格式”。字节序字节序是指多字节数据的存储顺序
dengjin20104042056
·
2015-09-15 18:00
网络编程
地址转换
大端模式
网络序
Linux网络编程
--非阻塞编程
非阻塞方式程序设计介绍非阻塞方式的操作与阻塞方式的操作最大的不同点是函数的调用立刻返回,不管数据是否成功读取或者成功写入。使用fcntl()将套接字文件描述符按照如下的代码进行设置后,可以进行非阻塞的编程:fcntl(s,F_SETFL,O_NONBLOCK);其中的s是套接字文件描述符,使用F_SETFL命令将套接字s设置为非阻塞方式后,再进行读写操作就可以马上返回了。非阻塞程序设计的例子函数a
u010193457
·
2015-09-11 11:00
非阻塞
阻塞
套接字
fcntl
Linux网络编程
--select()和pselect()函数
函数select()和pselect()用于IO复用,它们监视多个文件描述符的集合,判断是否有符合条件的时间发生。1.select()函数函数select()与之前的recv()和send()直接操作文件描述符不同。使用select()函数可以先对需要操作的文件描述符进行查询,查看是否目标文件描述符可以进行读、写或者错误操作,然后当文件描述符满足操作的条件的时候才进行真正的IO操作。select(
u010193457
·
2015-09-10 17:00
select
IO复用
pselect
[置顶]
Linux网络编程
--IO模型基础
IO的方式有阻塞IO、非阻塞IO模型、IO复用、信号驱动、异步IO等,本文以UDP为例大概介绍这几种IO模型的基础知识和原理。1.阻塞IO阻塞IO是最通用的IO类型,使用这种模型进行数据接收的时候,在数据没有到之前程序会一直等待。2.非阻塞IO模型3.IO复用4.信号驱动IO模型5.异步IO模型
u010193457
·
2015-09-10 16:00
IO模型
异步IO
阻塞IO
IO复用
信号驱动
Linux网络编程
--IP地址与域名解析(DNS)
在日常生活中,人们往往知道主机的域名而不知道主机的IP地址,而socket的API均基于IP地址,所以需要使用DNS域名解析服务器进行解析。那么首先简单介绍一下DNS的原理,DNS服务器系统是按树形的结构构造,顶级域名服务器下分多个二级域名服务器,二级域名服务器下面又分多个下级域名服务器,每个服务器都下辖了一些主机,如图所示:那么一个主机是如何查询一个域名的IP地址呢?首先需要想本地的域名服务器查
奔跑吧,行者
·
2015-08-27 12:58
Linux网络编程
Linux网络编程
--IP地址与域名解析(DNS)
在日常生活中,人们往往知道主机的域名而不知道主机的IP地址,而socket的API均基于IP地址,所以需要使用DNS域名解析服务器进行解析。那么首先简单介绍一下DNS的原理,DNS服务器系统是按树形的结构构造,顶级域名服务器下分多个二级域名服务器,二级域名服务器下面又分多个下级域名服务器,每个服务器都下辖了一些主机,如图所示:那么一个主机是如何查询一个域名的IP地址呢?首先需要想本地的域名服务器查
u010193457
·
2015-08-27 12:00
socket
网络编程
byname
DNS域名解析
gethostby
Linux网络编程
--自定义套接字描述符判定函数issockettype
套接字描述符和通用文件描述符在形式上没有区别,那么如何判断一个文件描述符是否是套接字描述符呢?下面我们就简单的自定义一个函数issockettype,用于套接字描述符判定。#include #include #include #include #include #include intissockettype(intfd) { structstatst; interr=fstat(fd,&st
u010193457
·
2015-08-27 10:00
网络编程
S-IFSOCK
issocketty
S-IFMT
套接字描述符
Linux网络编程
--字符串IP和二进制IP转换
一:不安全的(不可重入性)inet_xxx()函数族由于计算机理解的IP都是以二进制形式保存的,那么在网络程序设计中经常会需要字符串IP和二进制IP的转换,linux系统有一组要用于网络地址转换的函数,如下:#include #include #include intinet_aton(constchar*cp,structin_addr*inp); //将点分4段式的IP地址转换为结构in_a
u010193457
·
2015-08-25 14:00
Linux网络编程
IP地址转换
inet-ntoa
二进制IP地址
inet-pton
Linux网络编程
--字符串IP和二进制IP转换
一:不安全的(不可重入性)inet_xxx()函数族由于计算机理解的IP都是以二进制形式保存的,那么在网络程序设计中经常会需要字符串IP和二进制IP的转换,linux系统有一组要用于网络地址转换的函数,如下:#include #include #include intinet_aton(constchar*cp,structin_addr*inp);//将点分4段式的IP地址转换为结构in_ad
u010193457
·
2015-08-25 13:00
二进制
网络编程
inet_ntoa
inet_pton
二进制IP地址
Linux网络编程
--字节序
1.谈到字节序,那么会有朋友问什么是字节序很简单:【例如一个16位的整数,由2个字节组成,8位为一字节,有的系统会将高字节放在内存低的地址上,有的则将低字节放在内存高的地址上,所以存在字节序的问题。】2.那么什么是高字节、低字节?也相当简单:【一个16进制整数有两个字节组成,例如:0xA9。高字节就是指16进制数的前8位(权重高的8位),如上例中的A。低字节就是指16进制数的后8位(权重低的8位)
u010193457
·
2015-08-25 11:00
linux
网络编程
字节序
htonl
ntohl
嵌入式
Linux网络编程
之 多线程聊天
题目要求:编写一个网络聊天程序,要求采用数据流的套接口编程程序分为服务端与客户端服务端最大同时连接10个客户端服务端可以响应多个客户端的请求,每个客户端直接可以相互通信,由服务器实现转发。服务器端显示所有客户端的通信客户端通过用户名实现不同用户间的通信(发送消息格式:用户名消息内容)服务器代码:#include #include #include #include #include #includ
u011467781
·
2015-08-24 17:00
多线程
服务器
嵌入式
网络编程
聊天
嵌入式
Linux网络编程
之 简单的TCP网络编程
关于TCP:TCP提供的是一种面向连接的、可靠的字节流服务。 TCP网络通信流程图补充的API函数名称:listen() 原型:intlisten(intsockfd,intbacklog) 功能:宣告服务器能够接收的连接请求数 头文件: 成功:0失败:-1 参数说明: sockfd:套接字 backlog:请求队列允许的最大
u011467781
·
2015-08-24 17:00
服务器
客户端
TCP网络通讯
嵌入式
Linux网络编程
之 简单的UDP网络编程
关于用户数据报文协议(UDP):UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。而且UDP提供的是不可靠的非连接型的传输层服务,允许在源站点和目的站点之间传送数据,而不必在传送数据之间建立连接,进而开销比较低,主要用于那些不要求TCP协议的非连接型应用程序。例如:网络管理,视频点播、网络会议...简单的数据报通信的框图常用的A
u011467781
·
2015-08-24 16:00
socket
嵌入式
网络编程
UDP数据报通信
Linux网络编程
--TCP网络编程基础(简单的server/client模型)
本文主要讲解C/S模型,对服务器端和客户端的流程和函数的使用进行解析,以及网络编程中对信号的处理,特别是由于连接关闭而产生的SIGPIPE信号和终止进程而产生的SIGINT信号,当然截取信号并进行处理是程序稳定性的基本要求。TCP网络编程中常用的函数主要有:socket(),bind(),listen(),accept(),read(),write(),connect(),close();服务器端
u010193457
·
2015-08-24 15:00
socket
tcp
服务器
网络编程
Signal
Linux网络编程
--获取文件状态信息fstat函数
/*使用stat获得文件的状态*/ #include #include #include intmain(void) { structstatst; if(-1==stat("test.txt",&st)){ printf("获得文件状态失败\n"); return-1; } printf("包含此文件的设备ID:%d\n",st.st_dev); printf("此文件的节点:%d\n",s
u010193457
·
2015-08-20 13:00
linux
网络编程
fstat
stat
lstat
Linux网络编程
--文件属性fcntl函数
/*使用fcntl控制文件符*/ #include #include #include intmain(void) { intflags=-1; intaccmode=-1; /*获得标准输入的状态的状态*/ flags=fcntl(0,F_GETFL,0); if(flags #include #include #include/*strlen函数*/ #defineNEWFD8 intm
u010193457
·
2015-08-20 12:00
linux
网络编程
文件属性
fcntl
Linux网络编程
--文件空间映射mmap函数
/*使用mmap对文件进行操作*/#include#include#include#include/*mmap*/#include/*memsetwarning*/#include#defineFILELENGTH80intmain(void){intfd=-1;/*将要写入文件的字符串*/charbuf[]="quickbrownfoxjumpsoverthelazydog";char*ptr=
奔跑吧,行者
·
2015-08-20 11:25
Linux网络编程
Linux网络编程
--文件空间映射mmap函数
/*使用mmap对文件进行操作*/ #include #include #include #include/*mmap*/ #include/*memsetwarning*/ #include #defineFILELENGTH80 intmain(void) { intfd=-1; /*将要写入文件的字符串*/ charbuf[]="quickbrownfoxjumpsoverthelazyd
u010193457
·
2015-08-20 11:00
网络编程
mmap
munmap
文件空间映射
linux网络编程
poll与epoll区别
poll()函数:这个函数是某些Unix系统提供的用于执行与select()函数同等功能的函数,下面是这个函数的声明:#includeintpoll(structpollfdfds[],nfds_tnfds,inttimeout);参数说明:fds:是一个structpollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用这个函数之后,系统不会清空这个数组,操作起来比较方便
eerstar
·
2015-08-18 20:27
linux
一个简单的wed服务器SHTTPD(1)————命令行和文件配置解析
开始学习《
LInux网络编程
》中的综合案例,虽然代码书上有,还是自己打一下加深理解和印象。主要有两个函数,完成命令行的解析,另一个实现配置文件的解析,注释还是比较丰富的哦。
缱绻的西格玛
·
2015-08-12 13:22
网络编程
服务器
简单的web服务器
linux 网络编程总结(之网络编程函数总结)
这周学习了
linux网络编程
相关的知识,现在将其总结如下: 在linux系统中已经将TCP/IP协议相关的东西都封装好了,所以在入门学习网络编程的时候并没有学习研究太多TCP/IP
Jung_zhang
·
2015-08-07 21:00
linux网络编程
-内存管理
一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以
stefan1240
·
2015-08-02 19:00
内存共享
Linux网络编程
之使用TCP传输文件
【面向专家】极客头条使用体验征文[张传波]活用UML—打造软件设计高手
Linux网络编程
之使用TCP传输文件分类:Linux网络子系统SocketTCP/IP
Linux网络编程
2013-05-2614:
诺尔曼
·
2015-07-24 16:00
linux
网络编程
TCP/IP 三次握手、四次挥手
在我们学习网络基础时,传输层的协议有TCP和UDP;在
Linux网络编程
中,我们使用socketAPI,实现网络通信。那么: socketAPI和TCP协议中各个状态是如何对应的呢?
stefan1240
·
2015-07-22 20:00
通信
网络编程
TIME_WAIT状态原理
Linux网络编程
之原始套接字
1.介绍前面主要介绍了流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),基本上能够满足TCP与UDP的应用。但一些问题,我们仍然无法解决,如:(1)发送一个自定义的IP包(2)发送ICMP包(3)侦听网络上的数据包(4)伪装IP地址(5)实现自定义的协议究其原因,标准的套接字与TCP,UDP层打交道,而原始套接字只与IP层,MAC层打交道。2.原始套接字的类型(1)soc
多线程任务
·
2015-07-08 11:04
linux
网络编程
网卡
IP地址
数据包
Linux网络编程
之原始套接字
1.介绍前面主要介绍了流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),基本上能够满足TCP与UDP的应用。但一些问题,我们仍然无法解决,如:(1)发送一个自定义的IP包(2)发送ICMP包(3)侦听网络上的数据包(4)伪装IP地址(5)实现自定义的协议究其原因,标准的套接字与TCP,UDP层打交道,而原始套接字只与IP层,MAC层打交道。2.原始套接字的类型(1)soc
多线程任务
·
2015-07-08 11:04
linux
网络编程
网卡
IP地址
数据包
Linux网络编程
基础
(一)
Linux网络编程
--网络知识介绍
Linux网络编程
--网络知识介绍客户端和服务端网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端在网络程序中,如果一个程序主动和外面的程序通信
有些服务器
·
2015-07-05 22:00
Linux网络编程
(一)基础
一、数据存储顺序:大端和小端 大端模式:地址的增长顺序与值的增长顺序相反 小段模式:地址的增长顺序与值的增长顺序相同 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8
tfygg
·
2015-06-25 09:00
linux网络编程
之二-----多播(组播)编程
多播编程实例服务器端下面是一个多播服务器的例子。多播服务器的程序设计很简单,建立一个数据包套接字,选定多播的IP地址和端口,直接向此多播地址发送数据就可以了。多播服务器的程序设计,不需要服务器加入多播组,可以直接向某个多播组发送数据。下面的例子持续向多播IP地址"224.0.0.100"的8888端口发送数据"BROADCASTTESTDATA",每发送一次间隔5s。/* *broadcast_s
ctthunagchneg
·
2015-06-20 01:00
linux网络编程
之一-----多播(组播)编程
什么是多播 组播(Multicast)是网络一种点对多(onetomany)的通信方式,通过报文复制完成网络中一台server对应多台接收者的高效数据传送。对其形象的比喻就是类似于广播电台和电视台节目的发送。电台或电视台向特定频道发送他们的节目,而接收者可以根据自己的喜好选择频道来收听或收看节目。 传统网络的通信方式单播(Unicast)在许多场合下并不合适,如果强行采于单播方式
ctthunagchneg
·
2015-06-20 00:00
linux网络编程
之一-----多播(组播)编程
原文链接:http://www.cnblogs.com/hehehaha/p/6332280.html什么是多播组播(Multicast)是网络一种点对多(onetomany)的通信方式,通过报文复制完成网络中一台server对应多台接收者的高效数据传送。对其形象的比喻就是类似于广播电台和电视台节目的发送。电台或电视台向特定频道发送他们的节目,而接收者可以根据自己的喜好选择频道来收听或收看节目。传
weixin_33832340
·
2015-06-20 00:00
Linux网络编程
——tcp并发服务器(epoll实现)
通过epoll实现tcp并发回执服务器(客户端给服务器发啥,服务器就给客户端回啥)代码如下:#include #include #include #include #include #include #include #include #include #include #include #defineOPEN_MAX100 intmain(intargc,char*argv[]) { stru
lianghe_work
·
2015-06-18 20:00
epoll
tcp高效率并发服务器
Linux网络编程
——I/O复用函数之epoll
一、epoll概述epoll是在2.6内核中提出的,是之前的select()和poll()的增强版本。相对于select()和poll()来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。二、epoll操作过程需要的四个接口函数四接口函数分别是:#include i
lianghe_work
·
2015-06-18 10:00
epoll
Linux网络编程
——tcp并发服务器(poll实现)
想详细彻底地了解poll或看懂下面的代码请参考《
Linux网络编程
——I/O复用之poll函数》代码:#include #include #include #include #include #include
lianghe_work
·
2015-06-17 17:00
poll
高效tcp并发服务器
Linux网络编程
——I/O复用之poll函数
一、回顾前面的selectselect优点:目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点select缺点:1.每次调用select(),都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大,同时每次调用select()都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大。2.单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,可以通过
lianghe_work
·
2015-06-17 15:00
poll
udp_qq
多任务并发
Linux网络编程
常见面试题
概述TCP和UDP是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(streamsocket)的一种。UDP:用户数据报协议。UDP是一种无连接协议。UDP套接口是数据报套接口(datagramsocket)的一种。TCP与UDP简介基本TCP客户—服务器程序设计基本框架基本U
callinglove
·
2015-06-17 13:00
tcp
总结
面试
网络编程
UDP
Linux网络编程
:TCP服务器(单进程多用户),使用select方法实现
Linux下的单进程多用户TCP服务器,采用select方法实现。/************************************************* * File name : server.c * Description : 单进程并发服务器 * Author : 745917886@@qq.com * Version : V1.0 * Date
xipiaoyouzi
·
2015-06-17 11:00
上一页
23
24
25
26
27
28
29
30
下一页
按字母分类:
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
其他