Socket实战学习笔记(一)

什么是网络

在计算机领域中,网络是信息传输、接受、共享的虚拟平台

通过他把各个点、面、体的信息联系到一起,从而实现这些资源的共享

网络是人类发展史来最重要的发明、提高了科技和人类社会的发展

什么是网络编程

网络编程从大的方面说就是对信息的发送到接收

通过操作相应的Api调度计算机硬件资源,并利用传输管道(网线)进行数据交换的过程

更为具体的涉及:网络模型、套接字、数据包

OSI七层网络模型

在这里插入图片描述

物理层

主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速度等。它的主要作用是传输比特流(即由1、0转化为强弱电流来传输,到达目的后再转化为1、0,也就是说我们常说的模数转换)。这一层的数据成为比特,网卡工作在此层。物理层一般较少关心网络入侵分析,更专注于保证设备的电缆安全。

数据链路层

主要是将从物理层接收的数据进行MAC地址的封装与解封装。这一层的数据常被称为帧。在这一层工作的设备是交换机,数据通过交换机来传输(三层交换机不在此层工作)

网络层

主要用于将从下层接收到的数据进行IP地址的封装与解封装。在这一层工作的设备是路由器,这一层的数据常被称为数据包。

传输层

本层定义了一些传输数据的协议和端口号(如http端口80等),比如:TCP(传输控制协议,传输效率低,可靠性高,用于传输对可靠性要求高且数据量大的数据)和UDP(用于数据包协议,与TCP的特性相反,传输的是对可靠性要求不高且数据量小的数据)。传输层主要是将从下层接收到的数据进行分段传输,到达目的地后再去重组。我们常把这一层的数据称为段。

会话层

通过传输层(端口号:传输端口与接收端口)建立数据传输通路。主要是在系统之间发起会话或接收会话请求(设备之间可通过IP,也可通过MAC或主机名来互相认识)。

表示层

主要是对接收的数据进行解释,加密与解密、压缩与解压缩等操作(也就是把计算机能够识别的东西转换成人能识别的东西,比如图片、声音等)

应用层

主要是一些终端的应用,比如FTP(文件下载)、WEB(网页浏览)、QQ之类的应用(也可以把它理解成我们在电脑屏幕上所看到的东西,也就是终端应用),也可以理解为应用层负责向用户或应用程序显示数据的

什么是Socket

简单来说是IP地址与端口的结合协议(RFC 793)
一种地址与端口结合的描述协议
TCP/IP 协议的相关API的总称;是网络Api的集合实现
涵盖了:Stream Socket /Datagram Socket

Socket的作用与组成

在网络传输中用于唯一标示两个端点之间的链接
端点:包括(IP+Port)
4个要素:客户端地址、客户端端口、服务器地址、服务器端口
IP地址 + 端口号 = Socket协议

Socket 之 TCP

TCP 是面向连接 的通信协议
通过是那次握手建立连接,通讯完成时要拆除连接
由于TCP是面向连接的所以只能用于端到端的通讯

Socket 之 UDP

UDP 是面向无连接的通讯协议
UDP 数据包括项目的端口号和源端口号信息
由于通讯不需要连接,所以可以实现广播发送,并不局限与端到端

Client-Server Application

TCP/IP协议中,两个进程之间通信主要的模式为:CS模型
主要目的:协同网络中的计算机资源、服务模式、进程间数据共享
常见的:FTP、SMTP、HTTP

Socket TCP Test

1.构建TCP客户端、服务端
2.客户端发送数据
3.服务器读取数据并打印

Server

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
   
    public static void main(String[] args) throws IOException {
   
        ServerSocket serverSocket = new ServerSocket(2000);
        System.out.println("服务器准备就绪!!!");
        System.out.println("服务器信息:"+serverSocket.getInetAddress()+"P:"+serverSocket.getLocalPort());

        //等待客户端连接
        for (;;) {
   </
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值