背景知识

  • 计算机网络

  • 互联网

  • IP

  • 端口

  • URL

  • B/S,C/S

  • 分层

    • ISO标准(物理,数据链路,网络,传输,会话,表示,应用)
    • TCP/IP协议集(网络接口,网络层、传输层、应用层)
  • 应用层:HTTP、FTP、DNS、SMTP、Telnet

  • 传输层:TCP、UDP

  • 数据包

知识点

  • HTTP

    • InetAddress
    • InetSocketAddress
    • URL
    • HttpURLConnection
  • TCP协议
    • ServerSocket
    • Socket
  • UDP协议
    • DatagramPacket
    • DatagramSocket

命题

  • 计算机网络是计算机之间建立的通信网络。
  • 通信网络是个体之间传递信息的网络,比如邮政网络、快递网络、手机网络。
  • 计算机信息是通过网络设备进行传输。
  • 计算机信息是二进制的数字信息。
  • 计算机在网络中需要用IP作为身份标识。
  • 计算机中有多个应用,端口是应用在网络中的标识。
  • 应用拥有多个资源,URI是应用资源的标识。
  • URI(统一资源标志符)分为URL(统一资源定位符)和URN(统一资源名称)。
  • 计算机网路分为局域网和互联网。
  • 局域网是封闭的私有网络,私有IP。
  • 互联网是开放的公共网络,共有IP。
  • 网络中传输的是数据包,类似于快递包裹。
  • 数据包传输过程需要底层网络设备支持,比如网线、集线器、路由器。
  • 数据传输必须保证数据的完整性,就要求网络可用性、高效性、稳定性,所以将传输过程通过分层进行解耦,分层来解决可用性、高效性、稳定性、完整性。
  • 网络使用的TCP/IP分层方案。
  • 应用开发者只关心传输层和应用层。
  • 传输层负责数据包的传递工作,类似于快递公司,只负责运输过程,不关心包裹内容。
  • 传输层的工具是socket,有TCP和UDP两种传输协议。
  • 应用层负责数据内容规范,类似于信件格式,不同信件,格式不同。
  • 互联网三大基石:HTTP、HTML、URL。
  • TCP传输是安全的,保证数据一定能传递成功,代价是占用资源多、性能低。
  • UDP传输是不安全的,只负责数据发送,不关心接收情况,优点是占用资源少,性能高,代价是可能丢包。

实际案例

  • 信息订阅
  • 点对点传输
  • 聊天室
  • 爬虫

代码案例

TCP-server


/*** TCP服务器端,接收和处理客户端信息* 1、创建服务器socket对象,ServerSocket,侦听1003端口* 2、侦听端口,* 3、准备输入和输出对象* 4、输入对象读取客户端消息* 5、输出对象返回消息* 6、释放资源* * @author jeadong**/
public class TcpServer {public static void main(String[] args) throws Exception {
//       * 1、创建服务器socket对象,ServerSocket,侦听1003端口ServerSocket serverSocket = new ServerSocket(1003);
//       * 2、侦听端口System.out.println("服务器接收消息中...");Socket socket =  serverSocket.accept();
//       * 3、准备输入和输出对象DataInputStream reader = new DataInputStream(socket.getInputStream());
//       * 4、输入对象读取客户端消息System.out.println("收到客户端消息,准备处理...");System.out.println("client:"+reader.readUTF());
//       * 5、输出对象返回消息DataOutputStream writer = new DataOutputStream(socket.getOutputStream());writer.writeUTF("收到!");writer.flush();
//       * 6、释放资源reader.close();writer.close();socket.close();serverSocket.close();}}

TCP-client

/*** TCP客户端,向服务器发送消息* 1、创建socket对象,指定服务器IP+端口* 2、准备输入和输出对象* 3、发送消息* 4、接收消息* 5、释放资源* * @author jeadong**/
public class TcpClient {public static void main(String[] args) throws Exception {
//       * 1、创建socket对象,指定服务器IP+端口、Socket socket = new Socket(InetAddress.getLocalHost(),1003);
//       * 2、准备输入和输出对象DataOutputStream writer = new DataOutputStream(socket.getOutputStream());
//       * 3、发送消息System.out.println("客户端准备发送消息...");writer.writeUTF("hello server!");writer.flush();System.out.println("发送消息结束");
//       * 4、接收消息System.out.println("准备接收服务器反馈...");DataInputStream reader = new DataInputStream(socket.getInputStream());System.out.println("server:"+reader.readUTF());//         * 5、释放资源reader.close();writer.close();socket.close();}}

UDP-server


/*** 消息推送者:给订阅者推送消息* 1、创建UDP消息发送socket对象,发送端口1002,DatagramSocket* 2、准备发送信息内容* 3、创建发送消息容器,DatagramPacket* 4、准备发送地址* 5、发送消息* * @author jeadong**/
public class UdpServer {public static void main(String[] args) throws Exception {//      * 1、创建UDP消息发送socket对象,发送端口1002,DatagramSocketDatagramSocket socket = new DatagramSocket(1002);
//       * 2、准备发送信息内容byte[] b = "hello world!".getBytes();
//       * 3、创建接受消息容器,DatagramPacketDatagramPacket packet = new DatagramPacket(b,b.length);
//       * 4、准备发送地址packet.setSocketAddress(new InetSocketAddress("localhost", 1001));
//       * 5、发送消息System.out.println("消息推送者,准备推送信息...");socket.send(packet);System.out.println("消息推送者,推送信息完成。");socket.close();}}

UDP-client

/*** 消息订阅者:接收服务器推送消息* 1、创建UDP消息接收socket对象,接收端口1001,DatagramSocket* 2、创建接收消息容器,DatagramPacket* 3、接收消息* 4、收到消息* * @author jeadong**/
public class UdpClient {public static void main(String[] args) throws Exception {//      * 1、创建UDP消息接收对象,接收端口1001,DatagramSocketDatagramSocket socket = new DatagramSocket(1001);
//       * 2、创建接收消息容器,DatagramPacketbyte[] b = new byte[1024];DatagramPacket packet = new DatagramPacket(b,b.length);
//       * 3、接收消息System.out.println("消息订阅者,接收消息中...");socket.receive(packet);
//       * 4、收到消息String string = new String(packet.getData(),0,packet.getLength());System.out.println("收到消息:"+string);socket.close();}}

技术理论-【socket】- 计算机网络相关推荐

  1. 随着计算机网络的广泛应用,【网络技术论文】计算机网络技术的广泛应用探析(共3558字)...

    摘要:计算机网络技术发展迅速,计算机越来越受到重视.随着计算机网络技术的重要性凸显,计算机网络技术也被应用于方方面面.此文通过计算机网络技术的应用领域.社会方面的应用和计算机技术的具体应用进行具体.详 ...

  2. 新疆缺少计算机网络技术吗,新疆阿克苏职业技术学院的计算机网络技术专业好不?...

    类似问题答案 2021年山西信息职业技术学院单独计算机网络类(计算机网络技术.计算机系统与维护.... 2.计算机网络类(计算机网络技术.计算机系统与维护.信息安全与管理) 该类主要学习网络工程设计与 ...

  3. 对于计算机网络技术的课程,计算机网络技术课程剖析.doc

    计算机网络技术课程剖析 计算机网络技术课程剖析 摘 要:计算机网络技术对应用和实践都有着较高的要求,在信息化的时代背景下,我国对于网络技术的人才需求也十分迫切.特别是近年来,随着计算机的普及,网络技术 ...

  4. 计算机网络技术人员介绍,计算机网络技术专业介绍2021 计算机网络技术专业就业方向及前景...

    计算机网络技术专业介绍2021,计算机网络技术专业是近来的热门专业,相信大家也想详细了解这个专业的内容.就业前景和方向.下面查字典网小编整理了2021计算机网络技术的简介及前景的内容,以供大家参考. ...

  5. 浅析分布式数据库同步技术理论

    [摘 要]如何高效.安全地保持数据库之间数据同步是当前数据库技术研究热点问题.本文对于分布式数据库系统同步传输技术,通过数据库同步机制研究解决了多级数据库信息交换过程中上下级数据库数据不一致问题.  ...

  6. 计算机网络与技术课本,高等学校计算机科学与技术教材:计算机网络基础教程...

    高等学校计算机科学与技术教材:计算机网络基础教程 语音 编辑 锁定 讨论 上传视频 <高等学校计算机科学与技术教材:计算机网络基础教程>是2003年北方交通大学出版社出版的图书,作者是张立 ...

  7. 计算机网络英语技术支持题目,计算机网络英语学论文选题 计算机网络英语论文题目选什么比较好...

    精选了[100道]关于计算机网络英语学论文选题供您后续的写作参考,在写计算机网络英语论文之前,很多大学生总是被计算机网络英语论文题目选什么比较好难倒怎么办?请阅读本文! 一.比较好写的计算机网络英语论 ...

  8. 分布式协调组件ZooKeeper的技术理论剖析-综合组件环境实战

    本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客.QQ邮箱地址:1120746959@q ...

  9. 计算机虚拟化技术论文,【计算机网络论文】虚拟技术计算机网络论文(共1775字)...

    1计算机网络技术的应用领域 1.1虚拟网络技术 虚拟网络技术是世界上最广泛使用的网络技术之一,是一种非常先进的技术,受到大家广泛的认可,在一定程度上推动了计算机网络技术的发展.例如,企业或组织可以利用 ...

  10. 中央音乐学院计算机研究生,2020北京中央音乐学院硕士研究生招生复试电子音乐作曲、电子音乐技术理论等考生须知...

    为规范考试程序,严肃考试纪律,杜绝考试过程中的各种舞弊现象,经学院研究后决定:本次考试所有考生必须使用学院统一配备的计算机主机(iMAC-Retina5k,27-inch),专业声卡(Presonus ...

最新文章

  1. AR智能提升工业效率的4大场景与应用实践!
  2. NYOJ 801 Haffman编码
  3. 解决UICollectionViewCell/UITableViewCell因重用机制导致的错乱问题
  4. JS 打印 data数据_小程序导出数据到excel表
  5. 将一张图片修改为合适的像素大小
  6. sql怎么select中位数_怎么能避免写出慢SQL?
  7. JS动态生成表格案例
  8. HashMap 为什么是2倍扩容?
  9. centso系统命令来源查询
  10. W ndows xp 开机音乐,当年番茄花园Ghost XP的开关机音乐还记得吗?流传度媲美原版...
  11. Java-微信授权and手机号授权
  12. SSM+MySQL+JSP教务管理系统设计与实现(附源码下载地址)
  13. 移动文件夹ubuntu
  14. JS学习日记--正则基础语法
  15. (三)Java的基本程序结构(二)---数据输入、控制流、大数、数组
  16. Python编写函数,计算某个员工的奖金发放额度,要求输入员工的营业额,输出对应的奖金总额
  17. Python Flask开发简单http api接口 示例
  18. 简单分析Python ctypes模块的WinDLL源码(我爱Python,吼吼~)
  19. 【Java——计算圆面积】
  20. 活动预告 | 智能化软件开发微访谈·第二十一期:可观测性与智能化运维

热门文章

  1. 怎样做好人生中的第一份工作?
  2. UCF Local Programming Contest Round 1A记录
  3. ios中图片不加载或加载失败
  4. Mybatis概念和配置应用
  5. 【Zynq UltraScale+ MPSoC】基于LWIP模板的udp通信与测试(一):网络调试助手和PS端的简单通信
  6. IEEE-电气,电子工程师协会有哪些作品?
  7. 计算机教学辅助平台,教学辅助平台
  8. 30张最具话题性照片
  9. 如何看待 国产开源软件 购买 GitHub Star
  10. 微商建群卖鞋怎么引流?卖鞋微商怎么加更多好友