TCP编程例三:从客户端发送文件给服务器端,服务器端保存到本地,并返回“发送成功”给客户端。

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.InetAddress;

import java.net.ServerSocket;

import java.net.Socket;

import java.net.UnknownHostException;

import org.junit.Test;

/*

* TCP编程例三:

* 从客户端发送文件给服务器端,服务器端保存到本地,并返回“发送成功”给客户端。

*/

public class TestTCP3 {

/*

* 客户端

*/

@Test

public void client() {

Socket socket = null;

OutputStream os = null;

FileInputStream fis = null;

InputStream is = null;

try {

socket = new Socket(InetAddress.getByName("127.0.0.1"), 9009);

os = socket.getOutputStream();

fis = new FileInputStream(new File("1.jpg"));

byte[] b = new byte[1024];

int len;

while ((len = fis.read(b)) != -1) {

os.write(b, 0, len);

}

socket.shutdownOutput();

is = socket.getInputStream();

while ((len = is.read(b)) != -1) {

String str = new String(b, 0, len);

System.out.println(str);

}

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (is != null) {

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (os != null) {

try {

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (fis != null) {

try {

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (socket != null) {

try {

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

/*

* 服务器端

*/

@Test

public void server() {

ServerSocket ss = null;

Socket socket = null;

InputStream is = null;

FileOutputStream fos = null;

OutputStream os = null;

try {

ss = new ServerSocket(9009);

socket = ss.accept();

is = socket.getInputStream();

fos = new FileOutputStream(new File("2.jpg"));

byte[] b = new byte[1024];

int len;

while ((len = is.read(b)) != -1) {

fos.write(b, 0, len);

}

os = socket.getOutputStream();

os.write("成功收到文件。".getBytes());

socket.shutdownOutput();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (os != null) {

try {

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (fos != null) {

try {

fos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (is != null) {

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (socket != null) {

try {

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (ss != null) {

try {

ss.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

时间: 2024-12-11 06:40:32

TCP编程例三:从客户端发送文件给服务器端,服务器端保存到本地,并返回“发送成功”给客户端。的相关文章

使用URLConnection下载文件或图片并保存到本地

有时候需要从网络上面下载图片到本地进行保存,代码如下: package com.jointsky.jointframe.test; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; /** * 使用URLConnection下载文件或图片并保存到本地. * * @a

下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片

将一台服务器的文件.图片,保存(下载)到另外一台服务器进行保存的方法: 1 #region 图片下载 2 3 #region 图片下载[使用流.WebRequest进行保存] 4 /// <summary> 5 /// 图片下载[使用流.WebRequest进行保存] 6 /// </summary> 7 /// <param name="fileUrl">图片URL地址(例如:http://img.baidu.com/video/img/video

如何将S/4HANA系统存储的图片文件用Java程序保存到本地

我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api. DATA ls_appl_object TYPE gos_s_obj. DATA lo_gos_api TYPE REF TO cl_gos_api. DATA lt_attachment_list TYPE gos_t_atta. DATA lt_role_filter TYPE gos_t_rol. DATA: lv_

TCP编程2: 客户端给服务器端发信息,服务器端将信息打印到控制台上,同时发送&quot;已收到信息&quot;给客户端

import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; import org.junit.Test; /* * TCP编程例二: * 客户端给服

C#网络编程(订立协议和发送文件)

C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件.比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1.S2或S3(S为Send缩写)时,分别向服务端发送文件Client01.jpg.Client02.jpg.Client03.jpg:当我们输入R1.R2或R3时(R为Receive缩写),则分别从服务端接收文件Server01.jpg.Server02.jpg.Server03.

C#网络编程(订立协议和发送文件) - Part.4

转载自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part4.aspx 文件传输 前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件.比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1.S2或S3(S为Send缩写)时,分别向服务端发送文件Client01.jpg.Client02.jpg.Client03.jpg:当我们输入R1.R2或R3时(R为Recei

详解Linux搭建vsftp服务器通过三种方式实现文件传输

概述 FTP(File Transfer Protocol)中文称为"文件传输协议".用于Internet上的控制文件的双向传输. 工作原理 一.主动模式: 1.客户端通过用户名和密码登录服务器端,登录的是21端口(服务器端主动开启的).2.服务器端通过21端口接收到客户端的访问,验证用户名和密码.3. 登陆成功,客户端会随机开启一个1024以上的端口,在端口上会传递一个叫port的命令,通过命令告知服务器,打开端口,向客户端传递数据.(顺便的会将随机端口号告知服务器)4.服务器接收之

python批量执行命令发送文件

#!/usr/bin/python #-*- coding: utf-8 -*- import paramiko import datetime import os,tab,sys from multiprocessing import Process, Pool host_list = ( ('192.168.1.127','root','123456'), ('192.168.1.137','root','123456'), ('192.168.1.143','root','123456')

使用agsXMPP SDK向Openfire发送文件的注意事项

使用agsXMPP向Openfire发送文件,一直被service-unavailable错误困扰,详细错误如片段1-1所示.使用agsXMPP自带的Demo MiniClient项目,可以正常发送文件,但在自己的项目中却发送失败. 片段1-1 <iq xmlns="jabber:client" to="[email protected]/XmppDemo" id="agsXMPP_5" type="error">