1. TCP协议上传文本文件(客户端上传数据到服务器端)

(1)客户端(上传数据到服务端)

  1. package cn.itcast_11;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.io.OutputStreamWriter;
  7. import java.net.Socket;
  8. public class UploadClient {
  9. public static void main(String[] args) throws IOException {
  10. // 创建客户端Socket对象
  11. Socket s = new Socket("192.168.12.92", 11111);
  12. // 封装文本文件
  13. BufferedReader br = new BufferedReader(new FileReader(
  14. "InetAddressDemo.java"));
  15. // 封装通道内流
  16. BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
  17. s.getOutputStream()));
  18. String line = null;
  19. while ((line = br.readLine()) != null) {
  20. bw.write(line);
  21. bw.newLine();
  22. bw.flush();
  23. }
  24. // 释放资源
  25. br.close();
  26. s.close();
  27. }
  28. }

(2)服务端(接收来自客户端的数据)

  1. package cn.itcast_11;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.net.ServerSocket;
  8. import java.net.Socket;
  9. public class UploadServer {
  10. public static void main(String[] args) throws IOException {
  11. // 创建服务器端的Socket对象
  12. ServerSocket ss = new ServerSocket(11111);
  13. // 监听客户端连接
  14. Socket s = ss.accept();
  15. // 封装通道内的流
  16. BufferedReader br = new BufferedReader(new InputStreamReader(
  17. s.getInputStream()));
  18. // 封装文本文件
  19. BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java"));
  20. String line = null;
  21. while ((line = br.readLine()) != null) {
  22. bw.write(line);
  23. bw.newLine();
  24. bw.flush();
  25. }
  26. bw.close();
  27. s.close();
  28. }
  29. }

Java基础知识强化之网络编程笔记11:TCP之TCP协议上传文本文件的更多相关文章

  1. Java基础知识强化之网络编程笔记14:TCP之多个客户端上传到一个服务器的思考(多线程改进)

    1. 多个客户端上传到一个服务器的思考 通过while循环可以改进一个服务器接收多个客户端. 但是这个是有问题的.如果是这种情况,假设我还有张三,李四,王五这三个人分别执行客户端  张三:好好学习.a ...

  2. Java基础知识强化之网络编程笔记13:TCP之TCP协议上传图片并给出反馈

    1. TCP协议上传图片并给出反馈: (1)客户端: package cn.itcast_13; import java.io.BufferedInputStream; import java.io. ...

  3. Java基础知识强化之网络编程笔记12:TCP之TCP协议上传文本文件并给出反馈

    1. 客户端: package cn.itcast_12; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...

  4. Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)

    使用HttpClient进行Get方式通信,通过HttpClient建立网络链接,使用HttpGet方法读取数据,并且通过Response获取Entity返回值. 使用HttpClient进行Post ...

  5. Java基础知识强化之网络编程笔记17:Android网络通信之 使用Http的Post方式读取网络数据(基于HTTP通信技术)

    使用Http的Post方式与网络交互通信.Post方式需要向网络传输一部分数据,同时具有输入流和输出流. 详见:Android(java)学习笔记210:采用post请求提交数据到服务器(qq登录案例 ...

  6. Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)

    使用Http的Get方式读取网络数据,使用Get方式与网络通信是最常见的Http通信,建立链接之后就可以通过输入流读取网络数据. 详见:Android(java)学习笔记209:采用get请求提交数据 ...

  7. Java基础知识强化之网络编程笔记23:Android网络通信之 Volley(Google开源网络通信库)

    联合网上资料学习:http://www.open-open.com/lib/view/open1451223702339.html 一.Volley的介绍 1. Volley简介 在这之前,我们在程序 ...

  8. Java基础知识强化之网络编程笔记19:Android网络通信之 HttpClient和传统Post、Get方式的区别

    1. HttpClient是什么 ?     HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 ...

  9. Java基础知识强化之网络编程笔记01:InetAddress类的概述和使用

    1. InetAddress类 InetAddress是Java对IP地址的封装,在java.net中有许多类都使用到了InetAddress,包括ServerSocket,Socket,Datagr ...

随机推荐

  1. postInvalidate、removeAllViewsInLayout、refreshDrawableState用法

    postInvalidate.invalidate:会调用控件的onDraw()重绘控件 refreshDrawableState:当控件在使用一个对控件状态敏感的Drawable对象时使用,如一个B ...

  2. The new Portable Class Library for SQLite z

    Microsoft Open Technologies has recently released a Portable Class Library for SQLite. Thanks to it, ...

  3. C++ static_cast dynamic_cast reinterpret_cast const_cast转换

    static_cast <type-id> ( expression ) 和C风格的类型转换相似,可以转换一个指针到基类,或者派生类.不做Run-time类型检查,这样转换并不总是安全的. ...

  4. Poj 1163 The Triangle 之解题报告

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 42232   Accepted: 25527 Description 7 3 ...

  5. ExtJs 5.0需要注意的问题

    1.在网上查找到的一些例子当中,存在new Ext.grid.ColumnModel()这样的操作,在5.0当中这是不允许的,在5.0当中这个已经被设置为私有方法,不允许用户调用,在5.0中我们不需要 ...

  6. oracle表分析

    analyze table tablename compute statistics; analyze index indexname compute statistics; 对于使用CBO很有好处, ...

  7. 【Hadoop学习】Apache Hadoop项目简介

    正在撰写,稍后来访……

  8. HW6.27

    import java.util.Scanner; import java.util.Arrays; public class Solution { public static void main(S ...

  9. 如何写出性能好的sql

    开发人员是很少注意SQL对数据库性能影响的重要性的,大多程序员都会认为SQL是比较简单的,需要的时候查查手册就可以了,很少有深究的. 这样的观念对大型系统的开发是致命的,需要纠正这样的观念. 造成这样 ...

  10. 射频识别技术漫谈(14)——S50与S70存取控制【worldsing笔记】

    存取控制指符合什么条件才能对卡片进行操作. S50和S70的块分为数据块和控制块,对数据块的操作有"读"."写"."加值"."减值 ...