黑马程序员---网络编程之文件上传
2015-06-30 17:48
666 查看
------- android培训、java培训、期待与您交流!
----------、
网络编程
(1)用编程语言来实现计算机的资源共享和信息传递。
计算机网络:多台独立的计算机用网络通信设备连接起来的网络。实现资源共享和数据传递。
(2)网络通信的三要素
A:IP地址
计算机在网络中的唯一标识。
现在使用的是:"点分十进制"
B:端口
应用程序的的标记。
C:协议
通信的规则。
UDP:不建立连接,数据打包传输,数据有限制,数据不可靠,速度快。
TCP:建立连接,数据无限制,数据可靠,速度慢。
(3)UDP发送和接收数据
先开启谁都无所谓。
A:发送端
步骤:
创建发送端的Socket服务对象。
创建数据并把数据打包。
发送数据。
释放资源。
代码体现:
B:接收端
步骤:
创建接收端的Socket服务对象。
创建数据包。
接收数据。
解析数据。
释放资源。
代码体现:
(4)TCP发送和接收数据
必须先开启服务器。
A:客户端
步骤:
创建客户端Socket对象。
获取输出流。
写数据。
释放资源。
代码体现:
步骤:
创建服务器Socket对象。
监听客户端连接。
获取输入流。
读取数据。
释放资源。
代码体现:
2、综合案例:
A:服务器给出反馈。
B:客户端是键盘录入,服务器输出到控制台。
C:客户端是键盘录入,服务器是写到文件。
D:客户端是读取文件,服务器是写到文件。反馈信息
E:客户端是读取图片,服务器是写到图片。反馈信息
客户端代码:
<span style="white-space:pre"> </span>public class ClientDemo {
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>public static void main(String[] args) throws IOException {
<span style="white-space:pre"> </span> // 窗口客户端对象
<span style="white-space:pre"> </span> Socket s = new Socket("192.168.237.1", 12345);
<span style="white-space:pre"> </span> InputStream is = new FileInputStream("test.jpg");
<span style="white-space:pre"> </span> // 写到通道
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>OutputStream os = s.getOutputStream();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>int by = 0;
<span style="white-space:pre"> </span> while ((by = is.read()) != -1) {
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span> os.write(by);
<span style="white-space:pre"> </span> }
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>s.shutdownOutput();
<span style="white-space:pre"> </span> BufferedReader reader = new BufferedReader(new InputStreamReader(
<span style="white-space:pre"> </span> s.getInputStream()));
<span style="white-space:pre"> </span> String data = reader.readLine(); // 阻塞式
<span style="white-space:pre"> </span> System.out.println("client:" + data);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span> // 释放资源
<span style="white-space:pre"> </span> is.close();
<span style="white-space:pre"> </span> s.close();
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>} 服务器端代码:
<span style="white-space:pre"> </span>public class ServerDemo {
<span style="white-space:pre"> </span> public static void main(String[] args) throws IOException {
<span style="white-space:pre"> </span> // 创建服务器对象
<span style="white-space:pre"> </span> ServerSocket ss = new ServerSocket(12345);
<span style="white-space:pre"> </span> // 监听客户端连接
<span style="white-space:pre"> </span> Socket s = ss.accept();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>// 获取输入流
<span style="white-space:pre"> </span> InputStream is = s.getInputStream();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>// 获取输出流
<span style="white-space:pre"> </span> OutputStream os = new FileOutputStream("copy.jpg");
<span style="white-space:pre"> </span> int by = 0;
<span style="white-space:pre"> </span> while ((by = is.read()) != -1) {
<span style="white-space:pre"> </span> os.write(by);
<span style="white-space:pre"> </span> }
<span style="white-space:pre"> </span> // 给出反馈
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> s.getOutputStream()));
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> writer.write("文件上传成功");
<span style="white-space:pre"> </span><span style="white-space:pre"> <
9a26
;/span> writer.newLine();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>writer.flush();
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>os.close();
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> s.close();
<span style="white-space:pre"> </span> ss.close();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
运行结果:
<span style="white-space:pre"> </span>client:文件上传成功
----------、
网络编程
(1)用编程语言来实现计算机的资源共享和信息传递。
计算机网络:多台独立的计算机用网络通信设备连接起来的网络。实现资源共享和数据传递。
(2)网络通信的三要素
A:IP地址
计算机在网络中的唯一标识。
现在使用的是:"点分十进制"
B:端口
应用程序的的标记。
C:协议
通信的规则。
UDP:不建立连接,数据打包传输,数据有限制,数据不可靠,速度快。
TCP:建立连接,数据无限制,数据可靠,速度慢。
(3)UDP发送和接收数据
先开启谁都无所谓。
A:发送端
步骤:
创建发送端的Socket服务对象。
创建数据并把数据打包。
发送数据。
释放资源。
代码体现:
<span style="white-space:pre"> </span>DatagramSocket ds = new DatagramSocket(); byte[] bys = "udp,我来了".getBytes(); DatagramPacket dp = new DatagramPacket (bys,bys.length,InetAddress.getByName("192.168.32.80"),12345); ds.send(dp); ds.close();
B:接收端
步骤:
创建接收端的Socket服务对象。
创建数据包。
接收数据。
解析数据。
释放资源。
代码体现:
<span style="white-space:pre"> </span>DatagramSocket ds = new DatagramSocket(12345); byte[] bys = new byte[1024]; DatagramPacket dp = new DatagramPacket(bys,bys.length); ds.receive(dp); String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(),0,dp.getLength()); System.out.println(ip+"---"+data); ds.close();<span style="font-family: 'Microsoft YaHei'; background-color: rgb(255, 255, 255);"> </span>
(4)TCP发送和接收数据
必须先开启服务器。
A:客户端
步骤:
创建客户端Socket对象。
获取输出流。
写数据。
释放资源。
代码体现:
Socket s = new Socket("192.168.32.80",12345); OutputStream os = s.getOutputStream(); os.write("tcp,我来了".getBytes()); s.close();B:服务器端
步骤:
创建服务器Socket对象。
监听客户端连接。
获取输入流。
读取数据。
释放资源。
代码体现:
ServerSocket ss = new ServerSokcet(12345); Socket s = ss.accept(); InputStream is = s.getInputStream(); byte[] bys = new byte[1024]; int len = is.read(bys); String data = new String(bys,0,len); System.out.println(data); s.close(); ss.close();
2、综合案例:
A:服务器给出反馈。
B:客户端是键盘录入,服务器输出到控制台。
C:客户端是键盘录入,服务器是写到文件。
D:客户端是读取文件,服务器是写到文件。反馈信息
E:客户端是读取图片,服务器是写到图片。反馈信息
客户端代码:
<span style="white-space:pre"> </span>public class ClientDemo {
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>public static void main(String[] args) throws IOException {
<span style="white-space:pre"> </span> // 窗口客户端对象
<span style="white-space:pre"> </span> Socket s = new Socket("192.168.237.1", 12345);
<span style="white-space:pre"> </span> InputStream is = new FileInputStream("test.jpg");
<span style="white-space:pre"> </span> // 写到通道
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>OutputStream os = s.getOutputStream();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>int by = 0;
<span style="white-space:pre"> </span> while ((by = is.read()) != -1) {
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span> os.write(by);
<span style="white-space:pre"> </span> }
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>s.shutdownOutput();
<span style="white-space:pre"> </span> BufferedReader reader = new BufferedReader(new InputStreamReader(
<span style="white-space:pre"> </span> s.getInputStream()));
<span style="white-space:pre"> </span> String data = reader.readLine(); // 阻塞式
<span style="white-space:pre"> </span> System.out.println("client:" + data);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span> // 释放资源
<span style="white-space:pre"> </span> is.close();
<span style="white-space:pre"> </span> s.close();
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>} 服务器端代码:
<span style="white-space:pre"> </span>public class ServerDemo {
<span style="white-space:pre"> </span> public static void main(String[] args) throws IOException {
<span style="white-space:pre"> </span> // 创建服务器对象
<span style="white-space:pre"> </span> ServerSocket ss = new ServerSocket(12345);
<span style="white-space:pre"> </span> // 监听客户端连接
<span style="white-space:pre"> </span> Socket s = ss.accept();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>// 获取输入流
<span style="white-space:pre"> </span> InputStream is = s.getInputStream();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>// 获取输出流
<span style="white-space:pre"> </span> OutputStream os = new FileOutputStream("copy.jpg");
<span style="white-space:pre"> </span> int by = 0;
<span style="white-space:pre"> </span> while ((by = is.read()) != -1) {
<span style="white-space:pre"> </span> os.write(by);
<span style="white-space:pre"> </span> }
<span style="white-space:pre"> </span> // 给出反馈
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> s.getOutputStream()));
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> writer.write("文件上传成功");
<span style="white-space:pre"> </span><span style="white-space:pre"> <
9a26
;/span> writer.newLine();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>writer.flush();
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span><span style="white-space:pre"> </span>os.close();
<span style="white-space:pre"> </span><span style="white-space:pre"> </span> s.close();
<span style="white-space:pre"> </span> ss.close();
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
运行结果:
<span style="white-space:pre"> </span>client:文件上传成功
相关文章推荐
- pptv网络电视全屏后出现黑屏的解决办法
- 基于Java实现批量下载网络图片
- 问题解决 —— Http Status 500
- http返回值转换成json后,int类型转成的是NSNumber
- 磁盘及网络测试工具(iperf hdparm dd)
- httpclient cookie
- 搜索广告与广告网络Demand技术-搜索广告
- 搜索广告与广告网络Demand技术-探索与利用
- TCP服务器端口转发: netsh
- tomcat下配置https环境
- 查看网络图片
- 卷积神经网络CNN
- 【Android】实现下载网络图片并保存到SD卡中
- 黑马程序员 网络编程
- 计算机网络最小帧长2题目
- AFNetwork上传文件,下载文件,监控网络状态
- ArduinoYun教程之通过网络为Arduino Yun编程
- tcp的状态变迁图
- JavaWeb学习记录(二十六)——在线人数统计HttpSessionListener监听实现
- Salesforce软件用户的福利来啦