黑马程序员 【】java学习之路——TCP(三)客户端上传文件到服务器

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

import java.io.*;

import java.net.*;

class  TextClient

{

public static void main(String[] args) throws Exception

{

Socket s = new Socket("192.168.1.104",10010);

BufferedReader bufr =

new BufferedReader(new FileReader("TcpDemo.java"));

PrintWriter out = new PrintWriter(s.getOutputStream(),true);

String line = null;

while ((line = bufr.readLine())!=null)

{

out.println(line);

}

s.shutdownOutput();//关闭客户端输出流,相当于给流中加入结束标记啊(方式二)

out.println("over");//自定义结束标记 (结束方式一)

BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

String str = bufIn.readLine();

System.out.println(str);

bufr.close();

s.close();

}

}

class TextServer

{

public static void main(String[] args) throws Exception

{

ServerSocket ss = new ServerSocket(10010);

Socket s = ss.accept();

String ip = s.getInetAddress().getHostAddress();

System.out.println(ip+".........connected");

DataInputStream dis = new DataInputStream(s.getInputStream());

long l = dis.readLong();

BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

PrintWriter out = new PrintWriter(new FileWriter("Server.txt"),true);

String line = null;

while ((line = bufIn.readLine())!=null)

{

if ("over".equals(line))

{

break;

} //自定义结束标记 (结束方式一)

out.println(line);

}

PrintWriter pw = new PrintWriter(s.getOutputStream(),true);

pw.println("上传成功");

out.close();

s.close();

ss.close();

}

}

黑马程序员 【】java学习之路——TCP(三)客户端上传文件到服务器

时间: 2024-12-18 15:08:17

黑马程序员 【】java学习之路——TCP(三)客户端上传文件到服务器的相关文章

黑马程序员-JAVA学习日记-数组YNPB

黑马程序员学习笔记黑马程序员编程基础数组培训.培训.期待与您交流!数组:是存储同一种数据类型的的集合,也叫容器:特点:是数组中每个元素都有索引从开始:数组的定义式:数据类型数组名数据类型元素个数:数据类型数组名数据类型元素个数:如:数据类型数组名数据类型元素数据类型数组名元素如:如果元素确定就用这一种:数组中有一个属性:获取数组中的元素个数,即数组的长度:中的内存机制:栈:存储局部变量,一般定义在函数内的变量成为局部变量:特点:当内存中数据操作完成后,所占空间会自动释放栈内存堆:是通过创建的实体

黑马程序员——JAVA基础-网络编程-TCP

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- TCP传输 两个端点的建立连接后会有一个传输数据的通道,这通道称为流,而且是建立在网络基础上的流,称之为socket流.该流中既有读取,也有写入. tcp的两个端点:一个是客户端,一个是服务端. 客户端:对应的对象,Socket 服务端:对应的对象,ServerSocket TCP客户端: ①:建立tcp的socket服务,最好明确具体的地址和端口.这个对象在创建时,就已经可以对指定ip和端口

五年.net程序员Java学习之路

大学毕业后笔者进入一家外企,做企业CRM系统开发,那时候开发效率最高的高级程序语言,毫无疑问是C#.恰逢公司也在扩张,招聘了不少.net程序员,笔者作为应届生,也乐呵呵的加入到.net程序员行列中. C#.net非常容易上手,之前在大学里,做过winform和webform开发,也曾经在老师那里承接过小项目,赚点外快.于是在工作岗位上驾轻就熟,很容易就上手了企业开发框架,仅一年多,笔者就成为公司的开(jia)发(ban)骨(feng)干(xian). C#.net的网评比Java要差,笔者曾经在

黑马程序员——JAVA学习笔记十(IO)

1,    可以从其中读入一个字节序列的对象成为输入流,可以向其中写入一个字节序列的对象就做输出流.这些字节序列的来源地可以是文件,也可以是网络连接或者内存块.抽象类InputStream和OutputStream构成了I/O层次的基础.因为字节流不便于处理以Unicode存储的信息,所以有了Writer和Reader抽象类,这些从其中继承的类都是读入和写入基于2个字节的Unicode码元,而不是单个字节.   2,    InputStream 与OutputStream: abstract

黑马程序员——JAVA学习笔记十四(高新技术三)

10 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供定的服务. 按照代理的创建时期,代理类可以分为两种. 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译.在程序运行前,代理类的.class文件就已经存在了. 动态代

黑马程序员——JAVA学习笔记五(异常)

1,     异常:是在运行时期发生的不正常情况. 在java中用类的形式对不正常情况进行了描述和封装对象.描述不正常的情况的类,就称为异常类. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性. 其实异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述. 不同的问题用不同的类进行具体的描述.比如角标越界.空指针异常等等. 问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系. 不正常情况分成了两大类: Throwabl

黑马程序员——JAVA学习笔记十一(文件操作File)

为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类. 在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径. 1.创建文件 1)boolean java.io.File.createNewFile() throws IOException用来创建文件,如果文件存在,创建失败,返回fa

黑马程序员——java学习13(毕20--21总结)——IO

1.File 1.1.增删判获 1 package learn2; 2 /*File类的常见方法: 3 * 1.创建 4 * boolean createNewFile();//在指定位置创建如果,如果该文件已存在,则不创建,返回false; 5 * 输出流会覆盖 6 * boolean mkdir();//创建文件夹 7 * mkdirs();//创建多级文件夹 8 * 9 * 2.删除 10 * boolean delete();//删除失败,返回 false 11 * void delet

黑马程序员——java学习5(107-126)——内部类,异常,包

1.内部类 1.1何时: 事物的内部还有事物,就用内部类(人体和心脏举例) 方法: (1)内部类可以直接访问外部类中的成员,包括私有. 之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式:外部类名.this (2)外部类要访问内部类,必须建立内部类对象 格式: (1)当内部类定义在外部类的成员位置上,且非私有,可以在外部其他类中,可以直接创建内部类对象 Outer.Inner out=new Outer().new Inner(); (2)当内部类在成员位置上时,就可以