1网络编程基本概念

1 进程和线程得基本概论

    (1)处于运行过程中得程序实例,是操作系统调度和分配资源得基本单位。,但不是执行和调度资源得单位。

    (2)一个进程可以有多个线程,所有得线程都"同时"执行进程地址空间中得代码,那么要让所有得线程都能够线程,谁先运行谁后运行怎么办呢

    ,操作系统大哥通过一种循环得方式提供时间片,造成一种假象(看起来是同时运行得)。

    (3)当创建一个进程的时候,系统自动创建它得第一个线程称为主线程,这样这些进程可以继续生产更多得孩子。

2实现网间进程通信必须解决的问题有哪些呢

  (1)标识问题:一个主机可以有唯一的ID来标识,但是两个主机,如果A主机标识为4,B主机也可能是4,这样在网络环境下没有勒意义

  (2)与网络协议栈的问题:两个主机通信,通过画图更能体现分层的关系应用进程->交给下层传输层通过可靠的传输->传输层及其协议往下最后到物理层

             将数据变为信号->经过各种网络设备存储转发到目的主机->然后往上层走就是逆向得过程,这样相当的复杂,Windows通过Socket来解决

  (3)解决多重协议识别问题:不同的协议,格式不同,工作方式不同。

  (4)不同通信服务问题:比如需要传输一份非常重要得文件,需要传输可靠,无差错;或者下载程序,就算是一个字节掉了那也白搭。但是有一些聊天这样的应用就要求不高勒。

3端口

  (1)应用层进程与传输层协议实体之间的通信接口,再OSI模型中称为应用层进程与传输层协议实体间的服务访问点SAP

  (2)应用层进程通过和端口绑定,通过这个端口进行数据的发送和接受。就类似文件描述符。

  端口的分配机制:

    (1)全部端口数65535个端口分为保留端口(0-1023)和自由端口(1024-).首先需要向本地操作系统提出申请,操作系统返回一个本地唯一的端口号,进程通过合适系统调用讲自己与这个端口号绑定,然后进行通信。

  具体分配:

    0:不使用或者特殊

    1-255:保留特定的服务

    256-1023:保留给其他服务 如路由

    1024-4999:可以用作任意客户机的额端口

    5000-65535 用户的服务器端口

  

时间: 2024-08-04 14:59:53

1网络编程基本概念的相关文章

C#网络编程(基本概念和操作) - Part.1

引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍. 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议.套接字.聊天程序的三种开发模式,以及两个基本操作:侦听端口.连接远程服务端:第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打印字符串,将字符串改为大写,然后再将字符串回发到客

[转]C#网络编程(基本概念和操作) - Part.1

本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part1.aspx 引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍. 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议.套接字.聊天程序的三种开发模式,以及

C#网络编程(基本概念和操作)

C#网络编程(基本概念和操作) - Part.1 引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍. 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议.套接字.聊天程序的三种开发模式,以及两个基本操作:侦听端口.连接远程服务端:第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打

Java 网络编程----基本概念

网络现在是一个非常普遍的概念. 以下是维基百科上的解释: 网络一词有多种意义,可解作: 网络流也简称为网络(network).一般用于管道系统.交通系统.通讯系统建模. 有时特指计算机网络. 或特指其中的互联网. 或指互联网中的万维网. java网络编程关系的是以IP地址为基础的编程. IP,TCP,UDP IP是Internet Protocol的缩写,也就是网络间互联的协议. IP的设计相较于其他的类似协议有一些优点. 首先,IP最初是用于开发军事网络的,所以必须保证协议的健壮. 所以IP之

网络编程——基本概念

1.什么是计算机网络? 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件.软件.数据信息等资源. 2.计算机网络的主要功能 资源共享 信息传输与集中处理 均衡负荷与分布处理 综合信息服务(www/综合业务数字网络ISDN)等 3.网络通信协议 要使计算机连成的网络能够互通信息,需要对数据传输速率.传输代码.代码结构.传输控制步骤.出错控制等制定一组标准,这一组共同遵守的通信标准就是网络通信协议,不同计算机

PHP进阶-网络编程基础概念

以太网协议图: 以太网协议: 发送header(发送至mac地址,接收者mac地址).data到网线中所有连接的计算机,然后每个机子接收数据包的时候都是用以太网协议的, 然后解析header头,看是否为自己地址的数据在进行接收,不一样就丢掉, 以太网采用广播试传输数据,当子网机器过多的时候,会产生广播风暴. ip协议图 把整个计算机划分为一个一个的子网,同一个子网中的计算机进行传输 两个ip地址可以通过子网掩码算出是否在同一网段之内,如果不在就继续交给网关,你继续往下走 每一台计算机都有一个ip

Java学习之网络编程实例

转自:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html 多谢分享 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码

浅谈iOS网络编程之一入门

计算机网络,基本上可以抽象是端的通信.实际在通讯中会用到不同的设备,不同的硬件中,为了能友好的传输信息,那么建立一套规范就十分必要了.先来了解一些基本概念 了解网络中传输的都是二进制数据流.  2.了解网络编程概念. 认识网络: // 网络概念 <1> 经常见到的: 网卡/网线/IP地址/子网掩码/路由地址/DNS服务器地址 作用? // <2> 容易忽略的:MAC地址/数据/数据包 // <3> 网络编程的概念:客户端/服务器/请求/响应/数据流 // 网络是数据交互

网络编程01---计算机网络基础

1.为什么要学习网络编程 1.在移动互联网时代,移动应用的特征有 几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力 如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 2.移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据 新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻 视频:优酷.百度视频.搜狐视频.爱奇艺视频 音乐:QQ音乐.百度音乐.酷狗音乐.酷我音乐 LBS:百度地图