当前位置: 首页 > news >正文

Java网络教程的基础简介说明

转自:

Java网络教程的基础简介说明

在Java中提供了一些网络API,
当我们使用这些API时,可以很容易的创建TCP/IP或UDP套接字,并实现网络通信,
在了解网络编程前,我们需了解一些网络的前置知识,如:

Java TCP网络基础

当客户端打开一个连接到服务器端的TCP/IP连接后,客户端同服务器之间就开始通信
当通信结束后客户端关闭连接
​客户端在一个已打开的连接可以发送很多个请求(当然也可只发送一个请求)
当然服务器也可以主动关闭连接

Java中Socket类和ServerSocket类

如果一个客户端需打开一个连接,并使用TCP/IP连接到服务器时
此时我们可以使用Java Socket类
socket类只需要被告知连接的IP地址和TCP端口


如果我们想打开一个监听服务,监听客户端连接的指定TCP端口,此时我们需要使用Java中的ServerSocket类
当客户端通过Socket连接服务器端的ServerSocket监听时,服务器端会指定这个连接的一个Socket 通过以上的操作,客户端同服务器端的连接,就变成了Socket同Socket之间的通信

Java UDP网络基础

UDP工作方式同TCP相比稍微有些不同
使用UDP通信时,在客户端与服务器之间并没有建立连接的概念,
客户端发送到服务器的数据,服务器可能(也可能并没有)收到这些数据,而且客户端也并不知道这些数据是否被服务器成功接收
当服务器向客户端发送数据时也是如此

由于是不可靠的数据传输,所以UDP比TCP少了很多的协议开销,
但是某些场景下,UDP的性能高于TCP 

相关文章:

  • Flask 学习-35.restful-full 自定义错误内容 error_msg 使用
  • Linux连接文件与vim编译器的使用
  • oracle 删除语句(时间范围)
  • CMS垃圾收集器与三色标记算法详解
  • 2022速卖通重点运营策略,商品合规划经营必知
  • 【WSN通信】基于最佳簇半径的无线传感器网络分簇路由算法附matlab代码
  • 最新 MySQL 面试笔记解析直接爆砍 39K 月薪,拿走不谢
  • Jenkins实战中的一些技巧
  • webpack定制化 加载与插件[css加载器、html插件、image打包配置、babel代码兼容、vue加载器及配置]
  • 线程与进程的关联
  • Linux环境下fastdfs部署
  • 解锁新技能《Redis SETBIT用法》
  • STL应用 —— queue(队列)
  • 【计算机网络】OSI七层网络参考模型
  • 第二十章 控制进程(一)
  • 《Java编程思想》读书笔记-对象导论
  • 2017年终总结、随想
  • C++11: atomic 头文件
  • flutter的key在widget list的作用以及必要性
  • HTML5新特性总结
  • iOS 颜色设置看我就够了
  • Java|序列化异常StreamCorruptedException的解决方法
  • java取消线程实例
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Linux后台研发超实用命令总结
  • Swoft 源码剖析 - 代码自动更新机制
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 安卓应用性能调试和优化经验分享
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 记一次和乔布斯合作最难忘的经历
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 免费小说阅读小程序
  • 温故知新之javascript面向对象
  • 一道闭包题引发的思考
  • UI设计初学者应该如何入门?
  • 大数据全解:定义、价值及挑战
  • ​Spring Boot 分片上传文件
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)丶RabbitMQ的六大核心
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (理论篇)httpmoudle和httphandler一览
  • (力扣题库)跳跃游戏II(c++)
  • (六)软件测试分工
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)jQuery 基础
  • (转)原始图像数据和PDF中的图像数据
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .Net下的签名与混淆
  • ?.的用法
  • @Autowired标签与 @Resource标签 的区别