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 ...
随机推荐
- Redis----windows下的常用命令
1:首先下载redis.从下面地址下:https://github.com/MSOpenTech/redis/releases2:创建redis.conf文件:这是一个配置文件,指定了redis的监听 ...
- ios之开发屏幕适配和系统版本适配
ios软件开发过程中很重要的一点是对系统和屏幕进行适配对系统的适配主要是IOS7以后和之前以及IOS8新增特性,屏幕适配主要是对不同设备采用不同的布局以最佳展示效果展现给用户. 针对系统的适配: IO ...
- 利用asynchttpclient开源项目来把数据提交给服务器
可以通过github去查找asynchttpclient,并下载源代码,并加载到自己的工程中. 1.利用get方法提交 2.利用post方法来提交
- 20155229 2016-2017-2 《Java程序设计》第五周学习总结
20155229 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章: Java中所有错误都会被打包为对象. 设计错误对象都继承自java.lang.Th ...
- Gym 101630(NEERC 17) D.Designing the Toy
题目大意:给出三视图方向上分别能看到的正方形数a,b,c(1<=a,b,c<=100),在-100<=x,y,z<=100的范围内构造出满足情况的一种正方体的摆放方式 做法很简 ...
- .Net Core:部署应用
实战Asp.Net Core:部署应用 1.前言 某一刻,你已经把 .Net Core 的程序写好了.接下来,还可以做什么呢?那就是部署了. 作为一名开发工程师,如果不会部署自己开发的应用,那么这 ...
- (8)propetry装饰器
propetry是一个内置函数,用来将一个功能伪装成一个数据属性 property将一个方法伪装成一个数据属性class People: def __init__(self,name,height,w ...
- MySQL--MODIFY COLUMN和ALTER COLUMN
=================================================== 在修改列时,可以使用ALTER TABLE MODIFY COLUMN 和ALTER TABL ...
- 使用ioctl获取网卡统计信息
ethtool -S获取接口统计信息总共分三步: 1.获取统计项个数,使用SIOCETHTOOL+ETHTOOL_GSSET_INFO 2.(可选)获取统计项名字,使用SIOCETHTOOL+ETHT ...
- bat根据星期启动程序
原来公司里的由于每次开机时启动的程序比较多,所以打算使用批处理程序,这里只列举了部分.在每周一到周五的时候,开机则启动指定的应用程序,如果是周末的两天则不启动任何程序,所以做了这个脚本.你如果需要,根 ...