java===TCP(文件上传功能)

TCP传输,客户端建立过程: 1、创建TCP客户端SOCKET服务,使用的Socket对象,并明确目的地要连接的主机; Socket socket = new Socket("192.168.1.4",10002); 2、如果连接建立成功,说明数据传输通道已建立。该通道就是Scoket流,是底层建立好的;可以用Socket对象来获取输出输入了流; OutputStream out = socket.getOutputStream(); 3、使用输出流将数据写出。 out.write("tcp演示".getBytes()); 4、关闭资源。 socket.close();

tcp服务端: 1、创建tcp服务端Socket服务,使用ServerSocket对象,指定一个端口供其他主机访问; ServerSocket ss = new ServerSocket(10002); 2、服务端为了不乱,会获取各个客户端Socket服务对象,用其自身的socket对象与其交流; Socket s = ss.accept(); String ip =s.getInetAddress().getHostAddress(); 3、通过客户端对象获取socket流读取客户端发来的数据 InputStream in = s.getInputStream(); byte[]buf = new byte[1024]; int len =in.read(buf); String text = new String(buf,o,len); 4、关闭资源。关客户端,关服务端;(关闭客户端是为了不占用服务端资源,而且在服务端关闭可控)

s.close(); //服务端一般不关闭;

import java.io.*;
import java.net.*;
public class Client{
      public static void main(String[]args)throws IOException{
              BufferedReader bufr = new BufferedReader(new FileReader("e:\\client.txt"));
            Socket ss = new Socket("192.168.1.4",9987);
            BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));
            String line = null;
            while((line = bufr.readLine())!=null){
                 bufout.write(line);
                 bufout.newLine();
                 bufout.flush();
            }
            ss.shutdownOutput();
            BufferedReader bufin = new BufferedReader(new InputStreamReader(ss.getInputStream()));
            String text = bufin.readLine();
            System.out.println(text);
            bufr.close();
            bufout.close();
            bufin.close();
      }
}
import java.io.*;
import java.net.*;

public class Server{
      public static void main(String[]args)throws IOException{
            ServerSocket ss = new ServerSocket(9987);
            Socket s = ss.accept();
            BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));
            PrintWriter pw = new PrintWriter(new FileWriter("f:\\server.txt"),true);
            String line =null;
            while((line=bufin.readLine())!=null){
                 pw.println(line);
            }
            BufferedWriter bufout = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            bufout.write("上传成功");
            bufout.flush();
            s.close();
            pw.close();
      }
}
时间: 2024-08-08 17:56:25

java===TCP(文件上传功能)的相关文章

文件上传功能的实现

一:文件上传功能 先要在在index.jsp的界面上初始化一个表单. 代码如下: <body> <form enctype="multipart/form-data" action="<%=path%>/1.jsp" method="post"> 姓名:<input type="text" name="username"/> 选择文件:<input ty

java的文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请 求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common- fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,st

Spring MVC 文件上传功能详解

前言 在Spring MVC中实现文件上传功能并不复杂,前端使用HTML语法,后端使用特定抽象.参考Spring Boot相关文档即可.本文主要讲解常见资料忽略的两个问题: 文件上传错误 链接重置问题 版本:Spring Boot 1.5x 文件上传错误 一个关注点是如何处理文件上传期间发生的错误,错误主要分为两类: IOException 文件读取或写入错误. MultipartException 上传文件时,超过文件大小上限所触发的异常. IOException 只需要在Controller

Eclipse或MyEclipse没有在java类文件上显示Spring图标的问题

Eclipse或MyEclipse没有在java类文件上显示接口图标的问题解决办法: 前: 后:

达到HTTP合约Get、Post和文件上传功能——采用WinHttp介面

于<采用WinHttp实现HTTP协议Get.Post和文件上传功能>一文中,我已经比較具体地解说了怎样使用WinHttp接口实现各种协议. 在近期的代码梳理中,我认为Post和文件上传模块能够得到简化,于是差点儿重写了这两个功能的代码.由于Get.Post和文件上传功能的基础(父)类基本没有修改,函数调用的流程也基本没有变化,所以本文我将重点解说修改点. (转载请指明出于breaksoftware的csdn博客) 首先我改动了接口的字符集.之前我都是使用UNICODE作为接口參数类型,当中一

实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现

之前我们已经详细介绍了WinHttp接口如何实现Http的相关功能.本文我将主要讲解如何使用libcurl库去实现相关功能.(转载请指明出于breaksoftware的csdn博客) libcurl在http://curl.haxx.se/libcurl/有详细的介绍,有兴趣的朋友可以去读下.本文我只是从实际使用的角度讲解其中的一些功能. libcurl中主要有两个接口类型:CURL和CURLM.CURL又称easy interface,它接口简单.使用方便,但是它是一个同步接口,我们不能使用它

java多线程文件上传服务器

描述: (1)jdk自带线程池见 JDK自带线程池配置 (2)此上传文件服务器中上传文件的后缀名通过第一段缓冲字符流传递,此缓冲字符流大小为1024,在文件接收端以1024接收.处理. 1.服务器代码如下(使用jdk自带线程池): 1 /** 2 * 服务器处理多线程问题 3 * 4 * 1.因为服务器是要很多人访问的,因此里面一定要用多线程来处理,不然只能一个人一个人的访问,那还叫Y啥服务器 5 * 6 * 2,拿上面这个文件上传的例子来说,它将每个连接它的用户封装到线程里面去,把用户要执行的

艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项目地址:http://www.51aspx.com/code/MSDCArtMengFileUpload 咨询qq:286275658 演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 服务器端运行效果图: 服务器端配置文件: <?xml version="1.

实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现

在<使用WinHttp接口实现HTTP协议Get.Post和文件上传功能>一文中,我已经比较详细地讲解了如何使用WinHttp接口实现各种协议.在最近的代码梳理中,我觉得Post和文件上传模块可以得到简化,于是几乎重写了这两个功能的代码.因为Get.Post和文件上传功能的基础(父)类基本没有改动,函数调用的流程也基本没有变化,所以本文我将重点讲解修改点.(转载请指明出于breaksoftware的csdn博客) 首先我修改了接口的字符集.之前我都是使用UNICODE作为接口参数类型,其中一个