Java Internet
网络通信:
网络通信三要素:
IP
协议
端口
TCP:
建立连接,发送速度慢
三次握手协议
UDP:
不需要建立连接,发送速度快
安全性低
a) 使用UDP实现数据的发送
1 创建Socket端点实现数据的发送
DatagramSocket:
基于UDP,发送数据包
2 明确发送的数据
3 把数据封装成数据报包
DatagramPacket:
UDP数据包,指明了发送的数据,接收方的IP,接收方的端口
4 使用Socket的发送功能发送数据
内部使用输出流将数据写出去,所以有IOException
b) 使用UDP实现数据的接收:
1 创建Socket端点实现数据的接收
需要指定监听的端口
2 创建一个空的数据报包来接收数据
3使用Soclet的接收功能来接收
4 从数据报包获取数据
c) 使用TCP实现数据的发送:
客户端
1 创建Socket端点,负责数据发送,同时需要和服务端连接
2 发送数据,就是输出,使用输出流
Socket:只能作为客户端(发送)
Scoket socket = new Scoket(InetAddress.getByName(""), 55555);
这句话成功执行说明成功创建客户端
同时说明和服务器端连接成功
也就是和服务器端建立了一条通道
这条通道就是这个Socket流(客户端对象),Socket流中既有字节输入流,也有字节输出流
d) 使用TCP实现数据的接收:
服务端
ServerSocket:
1 创建Scoket对象,同时监听端口
2 得到客户端对象,和客户端使用相同的流
3 接收数据,就是读取数据,使用输入流
服务端如何区分客户端?
得到客户端对象,和客户端使用相同的流
shutDownOutput():添加结束标记
Java Internet的更多相关文章
- Java入门 任务表
Java IO Java ,MySQL Java Internet 线程,同步 冒泡法排序 1.
- MOOC 编译原理笔记(一):编译原理概述以及程序设计语言的定义
编译原理概述 什么是编译程序 编译程序指:把某一种高级语言程序等价地转换成另一张低级语言程序(如汇编语言或机器代码)的程序. 高级语言程序-翻译->机器语言程序-运行->结果. 其中编译程 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java网络---查找Internet
连接到Internet的设备称为节点,计算机节点称为host. 为了区别每一台连接互联网的计算机,就有了Internet Protocol地址的概念. IPV4 & IPV6 我们以前默认的是 ...
- 集成自动化的条形码功能到internet应用程序,网站或自定义Java应用程序的条码控件Java Barcode Package
Java Barcode Package控件是一款条码生成控件,包含所有的JavaBean,Applets,Servlets和类库可以使用于装有Java虚拟机的任何平台,包括Windows®, Lin ...
- Java实现Internet地址获取
Java实现Internet地址获取 代码内容 输入域名输出IPV4地址 输入IP地址输出域名 支持命令行输入 支持交互式输入 代码实现 /* nslookup.java */ import java ...
- Linkin大话Java和internet概念
整理电脑,无意中翻到不知道哪里来的文章,觉得里面写的很好,仔细看过一遍后,整理了下贴了出来,其中的好多概念我觉得讲的很透彻. 既然Java不过另一种类型的程序设计语言,为什么还有这么多的人认为它是计算 ...
- 【解决问题】failed: java.lang.RuntimeException: org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer.
failed: java.lang.RuntimeException: org.openqa.selenium.WebDriverException: Unexpected error launchi ...
- Java网络编程之查找Internet地址
一.概述 连接到Internet上计算机都有一个称为Internet地址或IP地址的唯一的数来标识.由于IP很难记住,人们设计了域名系统(DNS),DNS可以将人们可以记忆的主机名与计算机可以记忆的I ...
随机推荐
- Arrays类的分析及使用
1. Arrays类介绍 Arrays类是Java API中提供的类,在java.util包中,此类包含用来操作数组的各种方法,比如排序和搜索,在这个类中如果指定数组引用为null,则此类方法都会抛 ...
- CMMI的5个级别
为了帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地.不超预算地开发出高质量的软件,美国国防部与卡内基-梅隆大学和美国国防工业协会共同开发和研制了CMMI(软件能力成熟度模型 ...
- Spring Cloud Sleuth进阶实战
转载请标明出处: http://blog.csdn.net/forezp/article/details/76795269 本文出自方志朋的博客 为什么需要Spring Cloud Sleuth 微服 ...
- QT 5.4.1 for Android Windows环境搭建
QT 5.4.1 for Android Windows环境搭建 2015-5-13 目录 一.参考文章: 二.准备软件: 三.安装准备好的软件: 四.配置Qt 5.4.1 for Android 五 ...
- 转:Linux实时将所有输出重定向到文件
转自: Linux的重定向机制十分好用,我们经常需要在服务器上挂起一个服务程序,然后将该程序的所有输出重定向到某个文件,这样即使我们注销了用户,程序依然在linux服务器上运行着. 但是重定向的输出经 ...
- javaScript 之set/get方法的使用
例1:var fe={ name:'leony', $age:null, get age(){ if(this.$age == undefined){ //this.$age == undefined ...
- Largest Submatrix of All 1’s
Given a m-by-n (0,1)-matrix, of all its submatrices of all 1’s which is the largest? By largest we m ...
- PyCharm首次使用(Hell world!)
作为PyCharm编辑器的起步,我们理所当然的先写一个Hello word,并运行它.(此文献给对IDE不熟悉的初学者) 1,新建一个项目 File --> New Project... 2,新 ...
- 编译libmad库
libmad是一个开源的音频解码库,下面说说关于这个库工程的编译过程: 1.首先从网上下载libmad开源库,自己百度就能够找到关于这个库的下载链接地址,我这里提供一个: http://downloa ...
- 黑电-逻辑地址-0X4EB9FDE3- %o %d %x
****************************************************************************** 编程语言通常规定是以0开头的数字是八进制数 ...