1.网络编程的常识
  目前主流的网络通讯软件有:微信、QQ、YY、陌陌、探探、飞信、阿里旺旺、...
  在吗? 
1.1 七层网络模型
  为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下七层:
   应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
   在发送数据之前要按照上述七层协议从上到下一层一层进行加包处理,再发送出去;
   在接收数据之后要按照上述七层协议从下到上一层一层进行拆包处理,再解析出来;
1.2 常用的协议
   http协议 - 超文本传输协议,主要用于浏览网页时使用。
   ftp协议  - 文件传输协议,主要用于上传和下载文件时使用。
   tcp协议  - 传输控制协议,主要用于网络通信时使用。
   udp协议  - 用户数据报协议,主要用于网络通信时使用。
   ip协议   - 互联网协议,是上述协议的底层协议。
   协议本质上就是一种约定,用于规范通信双方的方式和规则。
1.3 IP地址
如:
   192.168.1.1  - 是绝大多数路由器的登录地址,进行Mac地址的过滤。
   IP地址本质上就是互联网中的唯一地址标识,通常由32位二进制组成的整数进行描述,叫做IPv4,当然也有128位二进制组成的整数,叫做IPv6。
   日常生活中采用点分十进制表示法来进行IP地址的描述,也就是将每个字节的二进制转换为十进制整数,不同整数之间采用小数点隔开。
如:
   0x01020304  => 1.2.3.4
查询IP地址的方式:
   Windows系统:在dos窗口中使用ipconfig命令或ipconfig/all命令查看即可.
   Linux系统:  在终端窗口中使用ifconfig命令或/sbin/ifconfig命令查看即可.
1.4 端口号
   IP地址 - 使用IP地址可以定位到具体某台设备。
   端口号 - 可以定位到具体设备中的具体进程。
   网络编程需要提供:IP地址 和 端口号。
   端口号本质就是由16二进制组成的整数,范围是:0 ~ 65535,其中0 ~ 1024之间的端口号通常被系统占用,因此编程从1025开始使用。
2.基于tcp协议的编程模型
2.1 编程模型
服务器:
   (1)创建ServerSocket类型的对象,并提供端口号;
   (2)等待客户端的连接请求,调用accept()方法;
   (3)使用输入输出流进行通信;
   (4)关闭Socket并释放有关的资源;
客户端:   
   (1)创建Socket类型的对象,并提供服务器的IP地址和端口号;
   (2)使用输入输出流进行通信;
   (3)关闭Socket并释放有关的资源;
2.2 相关类和方法的解析
(1)ServerSocket类
   java.net.ServerSocket类主要用于描述服务器端的套接字(大插排)。
   ServerSocket(int port) - 根据参数指定的端口号来构造对象。
   Socket accept() - 用于侦听并等待客户端的连接请求。
   void close()
(2)Socket类
   java.net.Socket类是用于描述客户端的套接字,是两台机器间通信的端点(小插排)。
   Socket(String host, int port) - 根据参数指定的主机名和端口号来构造对象。
   InputStream getInputStream() - 用于获取当前套接字的输入流。
   OutputStream getOutputStream() - 用于获取当前套接字的输出流。
   void close()

不积跬步,无以至千里;不积小流,无以成江海。

但愿能够帮助看到这篇文章的你! ^_^ 加油

java基础篇18-网络编程的常识和基于TCP协议的编程模型相关推荐

  1. Java基础:18. 网络编程

    目录 1 网络编程的常识​​​​​​ 1.1 七层网络模型 1.2 相关的协议 1.3 IP地址 1.4 端口号 2 基于tcp协议的编程模型 2.1 C/S架构的简介 2.2 编程模型 2.3 相关 ...

  2. Java基础篇:网络编程

    文章目录 概述 通信要素之一:IP和端口号 通信要素之二:网络协议 TCP网络编程 UDP网络编程 URL编程 总结 概述 Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支 ...

  3. 用C#实现基于TCP协议的网络通讯

    TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实 ...

  4. 用C#实现基于TCP协议的网络通讯(1)

    2008-09-09 19:35 作者: 出处:www.4oa.com ( 11 ) 砖   ( 12 ) 好  评论 ( 0 ) 条 进入论坛 更新时间:2005-09-29 14:54 关 键 词 ...

  5. Java基础部分笔记----------网络编程

    2019独角兽企业重金招聘Python工程师标准>>> 1.Java网络基本支持 1.1 InetAddress Java中的InetAddress是一个代表IP地址的对象.IP地址 ...

  6. 【JAVA基础篇】Socket编程

    一.Socket的概念 Socket是一种通讯机制,通常称为套接字.英文原意是插座,顾明思义,Socket像是一个多孔插座,可以提供多个端口的连接服务 ps:至于socket在计算机术语中怎么就翻译成 ...

  7. Android面试题Java基础篇

    Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...

  8. 《Java 后端面试经》Java 基础篇

    <Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...

  9. Java 基础篇(一)基本概念

    Java 基础篇系列文章目录 Java 基础篇(一)基本概念 Java 基础篇(二)数据类型 Java 基础篇(三)控制逻辑 文章目录 Java 基础篇系列文章目录 Java(软件开发) Java(编 ...

最新文章

  1. Apache Kafka-SpringBoot整合Kafka发送复杂对象
  2. java垃圾回收算法超详细全解
  3. python获取指定端口流量_利用python获取nginx服务的ip以及流量统计信息
  4. API函数MessageBox的参数与返回值
  5. 3-5Tensor的属性
  6. java中d怎样转换D,如何将ZonedDateTime转换为date?
  7. rundeck入门-基础知识
  8. poj 1125 Stockbroker Grapevine 代码及分析
  9. Socket Tcp高密集信息广播转发强度测试
  10. 利用JavaScript实现在网页上图片上一张下一张的操作
  11. 移动硬盘驱动器读到,但不显示盘符
  12. 定时监控服务端口是否正常 发送邮件
  13. 用计算机怎么打出箭头,怎么打出箭头
  14. 无限超越超级机器人nds_无限边境超级机器人大战OG传说超越隐藏宝箱
  15. java 指令发送短信_Java短信发送机的实现
  16. c语言测序,Hi-C测序
  17. (学习向)大数除法(余数,小数)
  18. 中船嘉年华(上海)邮轮有限公司正式宣布落户上海宝山区;“乐高(R)奇妙花园探秘之旅”于宋庆龄文化空间启程 | 全球旅报...
  19. Dubboamp;hsfamp;Spring-cloud的区别
  20. iiis环境安装php多个版本

热门文章

  1. 求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
  2. 流放者柯南服务器存档文件,流放者柯南服务器设置怎么保存
  3. Linux中Vi和Vim区别
  4. Java游戏心得 - 一口咬不到馅儿
  5. IOS JSON解析之JSONKit使用
  6. FusionInsight,让数据“慧”说话
  7. 客户因我们产品卖给了他竞争对手因而要终止同我们的合作,该如何应对。
  8. 编程代码 | C++/也能制作出万年历,精美万年历制作分享
  9. mysql配置数据库连接池_三种数据库连接池的配置
  10. java——创意图形项目总结