客户端

package com.swift.jinji;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket; /*项目需求:使用socket编写一个Java程序,要求:实现客户端上传文件到服务端,
即客户端读取本地文本文件,将文件发送至服务端,服务端将接收到的内容存放到文本文件中。*/ public class UploadClient { static int i = 1024; public static void main(String[] args) throws IOException, IOException { while (true) {
if (i < 65535) {
System.out.println(i);
Socket s = new Socket("192.168.122.35", 20000);
FileInputStream fis = new FileInputStream("d:/abc/0.jpg");
OutputStream out = s.getOutputStream();
byte[] buf = new byte[1024];
int len;
while ((len = fis.read(buf)) != -1) {
// 这个时候下面的套接字流write写没有写-1,因为到-1就停了
out.write(buf, 0, len);
}
s.shutdownOutput();
InputStream in = s.getInputStream();
len = in.read(buf);
System.out.println(new String(buf, 0, len));
}
}
} }

服务器端需开启上传接收客户端socket才行

package com.swift.jinji;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket; public class UploadServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(20000);
while (true) {
System.out.println("等待客户端连接");
Socket s = serverSocket.accept();
System.out.println("有客户端连接成功 " + s);
byte[] buf = new byte[1024];
int len;
File destDir = new File("d:/upload");
if (!destDir.exists()) {
destDir.mkdirs();
}
FileOutputStream fos = new FileOutputStream(new File(destDir, System.currentTimeMillis() + "_0.jpg"));
InputStream in = s.getInputStream();
while ((len = in.read(buf)) != -1) {
fos.write(buf, 0, len);
}
System.out.println("111111111111111");
OutputStream out = s.getOutputStream();
out.write("上传成功".getBytes());
s.close();
}
} }

效果就是,一瞬间会有数万张图片奔向服务器.

java TCP通信 socket 套接字 用图片上传轰炸服务器的更多相关文章

  1. 使用Netty进行Android与Server端通信实现文字发送接收与图片上传

    ANOTHER TITLE: Let’s use netty to achieve text send and receive and  image transfer to server based ...

  2. 基于TCP的socket套接字的网络编程(客户端/服务端模式)

    于数据完整性要求较高的场合,就应采用TCP协议. IP网络层提供IP寻址和路由.因为在网络上数据可以经由多条线路到达目的地,网络层负责找出最佳的传输线路. IP地址与数据包: IP层就是把数据分组从一 ...

  3. java模拟post方式提交表单实现图片上传【转】

     转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下:   <form action="up_result ...

  4. Java+jquery实现裁剪图片上传到服务器

    大体分两步: 1.利用jquery裁剪图片,把裁剪到的几个点传入后端 2.利用前端传入的几个点,来裁剪图片 首先,用到一个jquery的插件 imgAreaSelect 实例及插件下载地址:http: ...

  5. [网络编程之Socket套接字介绍,套接字工作流程,基于TCP协议的套接字程序]

    [网络编程之Socket套接字介绍,套接字工作流程,基于TCP协议的套接字程序] 为何学习socket套接字一定要先学习互联网协议: 1.首先:要想开发一款自己的C/S架构软件,就必须掌握socket ...

  6. 01:osi七层---基于TCP协议的套接字(socket)

    1 : osi 七层,tcp/ip 五层 1 cs架构和bs架构2 互联网3 osi七层 tcp/ip五层 -物理层   -网线.光纤        -数据链路层       -网卡        - ...

  7. 19、网络编程 (Socket套接字编程)

    网络模型 *A:网络模型 TCP/IP协议中的四层分别是应用层.传输层.网络层和链路层,每层分别负责不同的通信功能,接下来针对这四层进行详细地讲解. 链路层:链路层是用于定义物理传输通道,通常是对某些 ...

  8. 31_网络编程(Socket套接字编程)_讲义

    今日内容介绍 1.网络三要素及传输协议 2.实现UDP协议的发送端和接收端 3.实现TCP协议的客户端和服务器 4.TCP上传文件案例 01网络模型 *A:网络模型 TCP/IP协议中的四层分别是应用 ...

  9. 【网络编程】Socket套接字网络编程模型

    一.Linux网络模型 -- Socket套接字编程 图片:Socket 抽象层 Socket编程--不同协议,统一接口 Socket的实质就是一个接口, 利用该接口,用户在使用不同的网络协议时,操作 ...

随机推荐

  1. strchr和strstr函数

    二者都属于c的库函数   包含在<string.h>函数中 不同的是 : strchr是查找单个字符在串中出现的位置 strstr查找的是字符串在串中出现的位置 看代码: //strchr ...

  2. HDU 4323——Magic Number——————【dp求编辑距离】2012——MUT——3

    Magic Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  3. kindeditor编辑区空格被隐藏,导致所见所得不一致的解决办法

    1.修改kindereditor-all.js中的 var re = /(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[ ...

  4. poj 3162 树DP+单调队列

    http://acm.hust.edu.cn/vjudge/problem/11552 http://blog.csdn.net/woshi250hua/article/details/7727677 ...

  5. Spring课程 Spring入门篇 1-1Spring入门课程简介

    课程链接: 课程简介: 1 什么是框架 2 Spring简介 3 IOC(配置,注解) 4 Bean(配置,注解) 5 AOP(配置,注解,AspectJ.API) SpringFrameWork 常 ...

  6. Hibernate课程 初探多对多映射2-3 配置映射文件

    本节主要内容:配置映射文件 Project.hbm.xml <hibernate-mapping> <class name="com.ddwei.entity.Projec ...

  7. Spring文件下载

    package com.smbea.demo.controller; import java.io.BufferedInputStream; import java.io.BufferedOutput ...

  8. canvas制作倒计时效果

  9. iDempiere 使用指南 生产插件(Manufacturing)安装过程

    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...

  10. iDempiere 使用指南 BOM及工单流程

    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...