socket编程
007lizhen
这个作者很懒,什么都没留下…
展开
-
Linux网络编程学习笔记(1)---ISO/OSI参考模型
ISO/OSI参考模型,即ISO open system inerconnection(开放系统互联模型)。它定义了网络互联的七层框架,在此框架下进一步规定了每一层的功能,以实现开放系统环境中的互联性、开放性以及可移植性。(参考自百度百科) 各个层及其功能如下图所示。...原创 2018-03-10 11:35:09 · 391 阅读 · 0 评论 -
Linux网络编程学习笔记(2)---TCP/IP四层模型
本文将首先介绍TCP/IP四层模型,及其和OSI参考模型的对应关系。接着,介绍TCP/IP四层模型中设计到的主要协议。在TCP/IP协议中,将OSI模型的七层架构简化成了四层,如下图所示。 在上图中,同时给出了TCP/IP四层模型中,各层常用的协议。下面将逐个介绍这些协议。1、链路层(1)ARP和RARP协议在TCP/IP四层模型中,将ARP和RARP协议分到了链路层...原创 2018-03-13 10:08:21 · 1244 阅读 · 0 评论 -
Linux网络编程学习笔记(3)---socket编程中的基本概念
本文将介绍socket的概念、IPV4套接口地址结构、字节序、套接字类型以及常用的几个地址转换函数。1、什么是socket?socket可以看成是用户进程与内核网络协议栈的编程接口。它不仅可以用于本机间的进程间通信,还可以用于网络上不同主机间的进程间通信。socket在TCP/IP协议栈中的位置如下图所示。 2、IPV4套接字地址结构(网际套接字地址结构)存放于<n...原创 2018-03-13 11:02:34 · 290 阅读 · 0 评论 -
Linux网络编程学习笔记(4)---TCP客户端/服务器模型(C/S模型)
TCP的客户端/服务器模型如下图所示。 上图中,用到的函数介绍如下:1、 socket()函数该函数用于创建一个新的套接字。函数原型int socket(int domain,int type,int protocol)参数介绍:domain:通信协议族,IPV4为AF_INET或PF_INETtype:指定socket类型,流式套接字(SOCK_STREAM)、数据...原创 2018-03-13 15:09:00 · 1543 阅读 · 0 评论 -
Linux网络编程学习笔记(5)---实现点对点通信(回射客服端/服务器模型)
·本文首先介绍回射客户端/服务器模型,再实现点对点的通信。1、回射客户端/服务器模型2、点对点通信假设存在A和B两个主机,将A看作服务器端,将B看作客户端。那么,对于A实现步骤如下:利用socket()函数,声明一个套接字listenfd;利用bind()函数将本地地址与listenfd绑定;利用listen()函数,来监听网络中对套接字listenfd的连接请求...原创 2018-03-13 16:29:00 · 759 阅读 · 0 评论 -
Linux网络编程学习笔记(6)---TCP中的粘包问题及解决方案
TCP是一种基于字节流的传输服务,因此,TCP所传输的数据是没有边界的。这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的。TCP的发送方无法保证对等方每次接收到的是一个完整的数据包。1、TCP粘包问题产生的原因应用层通过调用write()函数,将应用层缓冲区中的数据拷贝到套接字发送缓冲区中。而套接字发送缓冲区有一个SO_SNBUF的限制。若应用层缓冲区中的数据大小大于套接字发...原创 2018-03-13 16:51:18 · 408 阅读 · 0 评论 -
Linux网络编程学习笔记(7)---5种I/O模型及select轮询
本文主要介绍5种I/O模型,select函数以及利用select实现C/S模型。1、5种I/O模型(1)阻塞I/O: 一直等到数据到来,才会将数据从内核中拷贝到用户空间中。 (2)非阻塞I/O: 每过一段时间就询问是否有数据到来(轮询),调用recv()函数,若没有数据到来会返回错误。接着继续询问。 (3)I/O多路复用: ...原创 2018-05-15 17:01:17 · 756 阅读 · 0 评论