端口的概念

每个电脑一根网线,但是你挂着QQ的同时还可以浏览网页。两个不同应用的数据在同一根网线里是如何传输的呢?根据七层互联网模型,这个功能由运输层(TCP是运输层主要协议)实现。怎么实现呢,在网络层IP提供的路由功能的基础上,你能和别人交互。但是想要区分上述浏览器和QQ的数据就需要有端口。当然这个端口是唯一的标识这个用户进程

套接字

IP+端口 运输层提供端到端服务的基础。运输层进而实现

复用:应用层所有的应用进程都可以通过运输层传到IP层(网络层)

分用:运输层从IP层收到发给各应用进程的数据后,通过套接字交给特定的进程

注意

可能有小伙伴看过电脑的应用管理器,后面有每个进程的端口号。注意这里的端口号是操作系统为了区分不同的应用进程使用的,不是我们这里讨论的端口。有人会问,为啥不使用现成的呢,反正是唯一标识进程。理论上是可以,但是Windows,IOS实现自己的进程端口的方式不一样,你处理起来要注意兼容。其次,操作系统的进程,大部分都不是用来传输数据的,都是服务于本机的

TCP套接字的更多相关文章

  1. TCP套接字编程

    一.套接字(socket)函数 图1给出了在一个TCP客户与服务器通信的流程.服务器首先启动,稍后某个客户启动,它试图连接到服务器.假设客户给服务器发送一个请求,服务器处理该请求,并且给客户发回一个相 ...

  2. 【UNIX网络编程(二)】基本TCP套接字编程函数

    基于TCP客户/server程序的套接字函数图例如以下: 运行网络I/O.一个进程必须做的第一件事就是调用socket函数.指定期望的通信协议类型. #include <sys/socket.h ...

  3. 实现基本TCP套接字客户端

    //实现基本TCP套接字客户端var net = require('net');function getConnection(connName){ var client = net.connect({ ...

  4. 套接字编程相关函数(2:TCP套接字编程相关函数)

    本文摘录自<UNIX网络编程 卷1>. 基本套接字函数 socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型.其定义如下: #in ...

  5. Python之路(第三十一篇) 网络编程:简单的tcp套接字通信、粘包现象

    一.简单的tcp套接字通信 套接字通信的一般流程 服务端 server = socket() #创建服务器套接字 server.bind() #把地址绑定到套接字,网络地址加端口 server.lis ...

  6. <网络编程>基本TCP套接字编程

    tcp提供了可靠传输,当tcp向另一端发送数据的时候,要求对端返回一个确认.如果没有接收到确认,tcp就重传数据并且等待更长时间,数次重传失败后,tcp才放弃. 建立一个tcp连接会发生如下事情: 服 ...

  7. TCP套接字端口复用SO_REUSEADDR

    下面建立的套接字都是tcp套接字 1.进程创建监听套接字socket1,邦定一个指定端口,并接受了若干连接.那么进程创建另外一个套接口socket2,并试图邦定同一个端口时候,bind错误返回“Add ...

  8. unix网络编程——TCP套接字编程

    TCP客户端和服务端所需的基本套接字.服务器先启动,之后的某个时刻客户端启动并试图连接到服务器.之后客户端向服务器发送请求,服务器处理请求,并给客户端一个响应.该过程一直持续下去,直到客户端关闭,给服 ...

  9. 通用套接字选项和TCP套接字选项

    1. 套接字选项函数原型: #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void ...

  10. 【UNIX网络编程(四)】TCP套接字编程具体分析

    引言: 套接字编程事实上跟进程间通信有一定的相似性,可能也正由于此.stevens这位大神才会将套接字编程与进程间的通信都归为"网络编程",并分别写成了两本书<UNP1> ...

随机推荐

  1. 2017年10月29日 数据库查询总结&45道题

    日期函数: 当前时间:GetDate() 两个时间差:DateDiff() 一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Tea ...

  2. 如何查询日志文件中的所有ip,正则表达式

    IPV4必须满足以下四条规则: 1.任何一个1位或2位数字,即0-99: 2.任何一个以1开头的3位数字,即100-199: 3.任何一个以2开头.第2位数字是0-4之间的3位数字,即200-249: ...

  3. git添加远程库基本操作

    git添加远程库的基本步骤: 1.登录github,创建一个仓库,最好和本地仓库同名 2.输入git指令,把路径改成本地仓库所在盘符,如图 (project_03是我的本地仓库名称,路径是在G盘的WW ...

  4. 20_AOP_Advice增强1(前置、后置、环绕)

    [增强的类型] 1.前置增强:org.springframework.aop.BeforeAdvice. 由于Spring只支持方法级别的增强,所以MethodBeforeAdvice是目前可用的前置 ...

  5. ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 5、安装Datastore

    安装Datastore 解压datastore安装包,tar -xzvf ArcGIS_DataStore_Linux_1051_156441.tar.gz 切换到arcgis账户静默安装server ...

  6. 在crontab中执行脚本重要事项

    crontab不能成功执行shell脚本的可能原因 crond进程不存在,该进程是crontab的守护进程,它必须存在才能让crontab正常使用: 系统时间不对: 环境变量的问题:crontab执行 ...

  7. bit_count

    bit_count函数的含义 用来计算二进制数中包含1的个数. select BIT_COUNT(10); 因为10转成二进制是1010,所以该结果就是2. bit_or函数的含义 就是对两个二进制数 ...

  8. SharePoint Server 2010的移动设备配置方案

    随着微软全新一代办公系统Office 2010 的推出,其所支持的移动方案也日渐受到人们的关注,而这些移动功能则是依赖于 SharePoint 2010 的移动性支持.下面就将大家介绍如何设置 Sha ...

  9. SharePoint 2010配置PDF文件全文检索

    一.安装Adobe PDF 64 bit IFilter version 9合Adobe Reader 9下载地址: http://www.adobe.com/support/downloads/de ...

  10. HCNA调整RIP的运行版本

    1.拓扑图 2.实验配置 R1配置RIPv1 md5加密认证 Please press enter to start cmd line! ############################### ...