网络编程基础

Posted ddzc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程基础相关的知识,希望对你有一定的参考价值。

网络编程基础

一、架构分类:

  • C/S架构:client客户端和server服务端
  • B/S架构:browser浏览器和server服务端

    B/S架构隶属于C/S架构,C/S架构的优势是可以充分的调度PC机的性能,但是B/S架构的优势是统一了接口

二、网络通信基础

  • 局域网与交换机的通信原理
    技术图片

  • ip地址:用来标记电脑用于识别,并且不允许重复。在网络通信中可以在传递信息的时候通过ip地址识别出接收方。
    • mac和linux通过命令行终端输入ifconfig来查看ip地址,Windows在命令行中通过ipconfig来查看
    • linux中命令行关闭网卡:sudo ifconfig 网卡名 down, 开启网卡:sudo ifconfig 网卡名 up
    • ip版本:
      • ip v1-v3:实验版本
      • ip v4:地址由四组数组成,每组数由逗号隔开,每组数中的最大值是255,最小值为0。ip地址组合的后最大ip地址数量:256256256*256,已经分配完,但是网络需求越来越大。
      • ip v5:实验版本
      • ip v6:为了解决ip地址不够的问题,但是ip v6普及率还不够。
    • ip的组成:192.168.33.xx,由网络号和主机号两部分组成。
      • 版本一:前三组标记网络号,后边一组是主机号,网络号相同的情况下主机号绝对不能一样。每一组号码从0-255,理论上这个网络好可以容纳256个主机,但是需要注意的是主机号不能有两个数字不能用:0和255。
      • 版本二:前两组为网络号,后两组为主机号,理论上的主机号数量为:256*256=65536
      • 版本三:第一组为网络号,后三组为主机号,理论上的主机号数量为:256256256=16777216

        具体使用哪种版本根据具体的人数和需求来定。

  • 端口
    • 端口号是异种骨特殊的网络通道,端口号只有整数,从0到65535
    • 为什么要有端口号:
      在网络通信的过程中,通过ip地址来确定信息发送给/接收自拿一台电脑,在接收到信息后电脑需要确定信息应该转给哪个程序来处理,此时ip地址已经不起作用,需要定义端口号来确定

    • 端口分类:
      • 知名端口:众所周知的端口号,范围从0-1023,80端口分配给HTTP服务,21端口分配给FTP服务。
      • 动态端口:可以随便使用的端口号,范围从1024-65535
  • 网络通信发送消息必须具备的具体内容:
    • dest ip:目标ip,用于识别接收信息的电脑
    • src ip:源ip,发送信息的电脑ip,即本机,用于目标ip回传信息时识别本机
    • dest port: 目标端口号,用于识别哪一个软件来接收并处理信息
    • src port: 源端口号,用于识别本机哪一个软件来接收并处理回传的信息
    • content: 网络通信中传送信息的内容

三、socket

  • 定义:socket(简称:套接字)是进程之间通信的一种方式,也可以理解为插排。它与其他进程间通信的一个区别是:它能实现不同主机间进程的通信,网络上各种各样的软件基本上都是基于socket来实现通信的。

  • 基本的格式:
    • 导入socket:import socket
    • 创建套接字:s = socket.socket(AddressFamily, Type)
      • AddressFamily
        • 用于internet间进程的通信,ip v4必须写成socket.AF_INET
        • 用于同一台机器间进程的通信, 必须写成AF_UNIX
        • 实际工作中常用AF_INET
      • Type:套接字类型,可以使用socket.SOCK_STREAM(流式套接字,主要用于TCP通信)或者socket.SOCK_DGRAM(数据报套接字,主要用于UDP协议)。注意大小写。
    • 关闭socket对象:s.close()

以上是关于网络编程基础的主要内容,如果未能解决你的问题,请参考以下文章

javaAPI_网络编程基础_网络编程基础2

javaAPI_网络编程基础_网络编程基础1

零基础想入门编程需要先学啥

MFC——10.网络编程基础

Python编程基础语法,你了解吗?

Scala 基础:Scala 函数式编程基础概念定义调用机制