网络编程
zhuhuiyu_
一个在努力中的程序员!!!加油!!
展开
-
网络编程1
1. 网络编程 2. 套接字类型:流式套接字(用于TCP通信)、数据报套接字(UDP通信)、原始套接字(用于新的网络协议实现的测试) 什么是套接字?:操作系统内核中的一个数据结构、网络中的节点进行相互通信的门户、网络进程的ID。 什么是Socket?:IO接口、文件描述符 三种类型: 1)流式Socket(SOCK_STREAM):用于TCP通信。提供提供可靠原创 2017-01-02 23:22:54 · 270 阅读 · 0 评论 -
网络编程15
1. 在accept成功以后,就要在服务器端开启一个线程,这样就可以单独的去处理某一个客户端的请求操作。 2. 这时候可以使用传参的方式,把新的客户端的套接字进行传入给线程的执行单元,这样就能让线程依靠这个套接字描述符进行和该客户端的通信了。 3. 那么如何通信呢?我们使用不带缓冲的IO操作,write和read,进行对套接字为文件描述符的操作,反正Linux下皆原创 2017-01-19 20:47:52 · 212 阅读 · 0 评论 -
网络编程14
1. 好处在于,这个结构体可以在第四个成员中填充0,使之与scokaddr结构体一样大小,这样就可以完成两种结构体的类型的转换。 2. 下一步就是将这个结构体清空,然后在里面填充重要的网络信息,有域,端口和ip地址,端口和ip地址需要使用函数进行转化,比如:端口需要使用htons()将端口的字节顺序转化为网络的字节顺序(大端存储),因为主机的字节顺序有时候大端有时候小端,然后原创 2017-01-18 22:45:42 · 252 阅读 · 0 评论 -
网络编程13
客户端/服务器网络编程注意点 服务器端 1. 首先创建套接字,调用的函数为socket(),参数使用的一般为IPv4 Internet协议,和套接字类型为流式套接字(套接字的类型有:流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM)(主要用于UDP连接)及原始套接字 ),流式套接字用于TCP连接,提供序列化的,可靠的,双向连接的字节流。 2.原创 2017-01-17 20:42:37 · 204 阅读 · 0 评论 -
网络编程12
1. 网络结构的标准模型是OSI模型,由ISO国际互联网标准化组织定义的网络分层模型。 2. ISO/OSI七层网络模型:应用层---表示层---会话层---传输层---网络层---数据链路层---网络层 3. TCP/IP四层参考模型:应用层---传输层----网络互联层---主机到网络 4. ARP(地址解析协议):完成IP地址和硬件地址的对应关系原创 2017-01-16 20:21:07 · 186 阅读 · 0 评论 -
网络编程11
1. 三次握手:22.TCP/IP 建立连接的过程?(3-way shake) 答:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状 态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个 SYN包(syn原创 2017-01-15 21:02:41 · 212 阅读 · 0 评论 -
网络编程8
1. 10.x.x.x 172.16.x.x~172.31.x.x 192.168.x.x表示私有地址,局域网中可以使用。 2. 子网掩码 4. Linux下的IP地址配置:ifconfigeth0 192.168.1.99 netmask 255.255.255.0 5. 端口 6. 端口:一个16位的整数类型,通常称为端口号。 7. 端口号的作用:IP地址只能对主原创 2017-01-10 23:05:46 · 246 阅读 · 0 评论 -
网络编程9
1. 服务器模型 2. 循环服务器:初始化套接字以及其他准备工作,然后在准备接收客户端连接的时候,使用while(1)来循环的检测,是否有客户端发起连接。如果有客户端请求连接,那么在服务器端为其创建一个线程,专门为这个客户端服务。 3. 简单的并发服务器:在服务器端,构建多个子进程或者子线程,当客户端的请求发来的时候,进程池中选取一个子进程处理客户端的连接,每个子进程处理一个客户端请求原创 2017-01-13 22:49:51 · 192 阅读 · 0 评论 -
网络编程7
1. IP地址由IP地址类型、网络ID、主机ID组成。 2. 特殊IP地址:主机号全为0,表示某个网络的网络地址;主机号全为1,仅做广播地址,目标地址为这个网络中的所有节点。 3. IP地址的32位全为0,表示主机本身,往此网址发送数据,由本机接收。 4. 0.0.0.0:所有不清楚的主机和目的网络。 255.255.255.255:限制广播地址,指向网络中的所有主机。 12原创 2017-01-09 20:36:42 · 255 阅读 · 0 评论 -
网络编程6
1. IP层中,有ICMP:网际控制报文协议。ICMP用于报告网络上的某些出错的情况。 2. ARP:地址解析协议(AddressResolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。 3. 以太网的数据格式:以太网用48bit(6字节)来表示原地址和目标地址,如MAC地址。数据段的长度有一个最大值,以太网为1500字节,称为MTU,即最大传输单元。原创 2017-01-08 23:03:09 · 209 阅读 · 0 评论 -
网络编程5
1. 传输层:数据单元称为数据段,为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。传输层协议的代表包括:TCP、UDP、SPX等。 2. 会话层:会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。会话层提供的服务可使应用建立和维原创 2017-01-06 21:53:48 · 245 阅读 · 0 评论 -
网络编程4
《Linux 网络编程》 1. OSI 2. 物理层:规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。属于物理层定义的典型规范代表包括:EIA/TIARS-232、EIA/TIARS-449、V.35、RJ-45等。为数据端设备提供传送数据的通路 3. 数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧原创 2017-01-05 20:01:26 · 265 阅读 · 0 评论 -
网络编程3
关于网络的Linux下命令 1. MTU,即MaximumTransmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以解决“部分网站打不开”、“上网速度慢”等问题,并且可以适当提升上网速度 2. MSS: Maxitum Segment Size 最大分段大小 做一下总结: MTU=40 Bytes+MSS原创 2017-01-04 19:13:49 · 206 阅读 · 0 评论 -
网络编程15最后
客户端 1. 首先创建套接字 2. 然后使用套接字进行连接connect(),如果连接上了服务器就可以开始做客户端做的操作了。 3. 客户端的操作可以放在一个函数中,这个函数中为循环的做一件事情,可以使用轮询的方式,不断的write和read,这样达到了阻塞型的客户端。 4. 阻塞问题这是问题,需要解决,但是阻塞有阻塞的坏处,不阻塞也有不阻塞的坏处。原创 2017-01-20 18:48:19 · 358 阅读 · 0 评论