java TCP通信 socket 套接字 用图片上传轰炸服务器
客户端
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 套接字 用图片上传轰炸服务器的更多相关文章
- 使用Netty进行Android与Server端通信实现文字发送接收与图片上传
ANOTHER TITLE: Let’s use netty to achieve text send and receive and image transfer to server based ...
- 基于TCP的socket套接字的网络编程(客户端/服务端模式)
于数据完整性要求较高的场合,就应采用TCP协议. IP网络层提供IP寻址和路由.因为在网络上数据可以经由多条线路到达目的地,网络层负责找出最佳的传输线路. IP地址与数据包: IP层就是把数据分组从一 ...
- java模拟post方式提交表单实现图片上传【转】
转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下: <form action="up_result ...
- Java+jquery实现裁剪图片上传到服务器
大体分两步: 1.利用jquery裁剪图片,把裁剪到的几个点传入后端 2.利用前端传入的几个点,来裁剪图片 首先,用到一个jquery的插件 imgAreaSelect 实例及插件下载地址:http: ...
- [网络编程之Socket套接字介绍,套接字工作流程,基于TCP协议的套接字程序]
[网络编程之Socket套接字介绍,套接字工作流程,基于TCP协议的套接字程序] 为何学习socket套接字一定要先学习互联网协议: 1.首先:要想开发一款自己的C/S架构软件,就必须掌握socket ...
- 01:osi七层---基于TCP协议的套接字(socket)
1 : osi 七层,tcp/ip 五层 1 cs架构和bs架构2 互联网3 osi七层 tcp/ip五层 -物理层 -网线.光纤 -数据链路层 -网卡 - ...
- 19、网络编程 (Socket套接字编程)
网络模型 *A:网络模型 TCP/IP协议中的四层分别是应用层.传输层.网络层和链路层,每层分别负责不同的通信功能,接下来针对这四层进行详细地讲解. 链路层:链路层是用于定义物理传输通道,通常是对某些 ...
- 31_网络编程(Socket套接字编程)_讲义
今日内容介绍 1.网络三要素及传输协议 2.实现UDP协议的发送端和接收端 3.实现TCP协议的客户端和服务器 4.TCP上传文件案例 01网络模型 *A:网络模型 TCP/IP协议中的四层分别是应用 ...
- 【网络编程】Socket套接字网络编程模型
一.Linux网络模型 -- Socket套接字编程 图片:Socket 抽象层 Socket编程--不同协议,统一接口 Socket的实质就是一个接口, 利用该接口,用户在使用不同的网络协议时,操作 ...
随机推荐
- web service, wcf, wcf rest, web api之间的区别
在.NET Framework中,有很多种技术可以创建基于http协议的服务,譬如说web service, wcf,wcf rest和web api等等.网上有很多的文章教我们如何开发.使用这几种技 ...
- 【Linux】Debian vim没有颜色的解决办法
vim /etc/vim/vimrc #查找到syntax on 启用,去掉前面的“ (引号). 保存ok 转载地址:http://www.th7.cn/system/lin/201404/525 ...
- pat1090. Highest Price in Supply Chain (25)
1090. Highest Price in Supply Chain (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 C ...
- SQL命令行操作
命令行操作(mysql.exe) 0.登录 : mysql -u root -p 1.显示数据库列表: show databases; 2.选择数据库: ...
- MakeFile基本使用
MakeFile Making makefile demo # Run this line when useing `make` command # default is the target whi ...
- POJ 3259——Wormholes——————【最短路、SPFA、判负环】
Wormholes Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit St ...
- HTML--备忘点
1.文档内的链接
- JVM:java类的加载机制
原文连接:https://www.cnblogs.com/ityouknow/p/5603287.html 类加载机制的奥妙. 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读 ...
- FTPUtil 多文件上传参考代码
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java ...
- 关于使用Github,gitignore不起作用的解决方法
直接上解决方法: 1 2 3 git rm -r --cached . git add . git commit -m 'update .gitignore' 解释: .gitignore文件,具 ...