黑马程序员——java基础--网络编程
来源:互联网 发布:数据库系统实现 视频 编辑:程序博客网 时间:2024/06/05 18:58
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一.概述
java网络编程可以满足网络间不同端点通讯需求,如即时通信,上传数据,下载数据等。
数据在网络从一端到另一端流动过程可以简单看作:
应用层(请求端)-表示层-会话层-传输层-网络层-数据链路层-物理层-网络层-传输层-会话层-表示层-应用层(服务端)
目前,我们学习java编程是基于传输层书写代码完成相应的通讯需求,其实质是建立Socket类对象来操作各种数据的编程,要实现通信,两端都必须建立Socket,他与IO流结合使用紧密。
二.TCP/UDP协议
TCP和UDP是传输层数据传递的规范协议,它规范了在这层数据应遵循什么规则传输。
- UDP协议特点:
- 1.将数据及源和目的封装成数据包,不需要建立连接
- 2.每个数据报的大小限制在64K内
- 3.没有连接通路,所以是不可靠协议
- 4.不需要建立连接,速度快
- Tcp协议特点:
- 建立连接形成传输数据的通道
- 2.在连接中进行大数据量传输
- 3.通过3次“握手”完成连接,是可靠协议
- 4.必需建立连接,效率会稍低
- 综上所述,结合其各自特点,TCP协议提供可靠的服务主要用于一次传输大量报文的情形,如文件传输,远程登录
- 等,UDP协议提供高效率的服务,如视频聊天,音频和多媒体应用等。
三.实际应用
1.结合UDP协议特点,进行实例编程:
/*
编写一个聊天程序,这是一个通过udp协议进行广播形式发送数据包。
有收数据的部分和发数据的部分,这两部分需同时执行,所以用到多线程技术。
一个线程控制收,一个线程控制发
因为收发动作是不一致的,所以要定义两个run方法,将其封装在不同类中。
编写一个聊天程序。
有收数据的部分和发数据的部分,这两部分需同时执行,所以用到多线程技术。
一个线程控制收,一个线程控制发
因为收发动作是不一致的,所以要定义两个run方法,将其封装在不同类中。
*/
可以使用如下代码进行广播传递数据包,另外IP是个人电脑实际IP
class Test41 {
public static void main(String[] args) throws Exception
{
DatagramSocket a = new DatagramSocket();
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = bufr.readLine())!=null)
{
if(“886”.equals(line))
break;
byte[] buf = line.getBytes();
DatagramPacket dp =
new DatagramPacket(buf,buf.length,InetAddress.getByName(“192.168.3.102”),10002);
a.send(dp);
}
}
}
2.TCP应用编程
2.1.先定义一个服务端,服务端接受到客户端数据后,返回确认信息
2.2在定义一个客户端,客户端会发出信息给服务端,发送成功后会收到服务端反馈的信息。
3.自定义浏览器服务端
此程序时创建一个浏览器服务端,当浏览器输入IP以及对应端口,将会收到服务端反馈的信息。
- 黑马程序员——Java基础---网络编程(UDP编程)
- 黑马程序员——Java基础---网络编程(TCP编程)
- 黑马程序员——java基础——网络编程
- 黑马程序员——java基础——网络编程
- 黑马程序员——Java基础——网络编程
- 黑马程序员——java基础——网络编程
- 黑马程序员——java基础——网络编程
- 黑马程序员——java基础——网络编程
- 黑马程序员——Java基础——网络编程
- 黑马程序员——java基础——网络编程
- 黑马程序员——java基础——网络编程
- 黑马程序员——JAVA基础——网络编程
- 黑马程序员——Java基础——网络编程
- 黑马程序员——Java基础——网络编程
- 黑马程序员——JAVA基础——网络编程
- 黑马程序员——Java基础—网络编程
- 黑马程序员——java基础—网络编程
- 黑马程序员——Java网络编程基础
- freeswitch ivr脚本
- Node.js—Node模块机制
- vim重复操作的宏录制
- 百度地图SDK使用笔记
- Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
- 黑马程序员——java基础--网络编程
- C++primer plus第六版课后编程练习答案6.6
- php redis插件安装
- 第五节 LCD12864显示
- Eclipse中Maven WEB工程tomcat调试
- redis安装
- 关于pear mail的发送中文邮件乱码可以参考
- strcat源代码汇总
- 快速排序分析