求高手实现以下代码(JAVA),TCP网络编程 80C

需求:应用所学技术实现 1. 客户端向服务器端请求存储一个图片 2. 服务器端进行判定,本地是否存在此图片,并将结果返回给客户端 3. 客户端根据服务器端返回的结果判定,如果服务器端存在该文件则结束程序,如果服务器端不存在该文件,则把文件上传到服务器端 4. 服务器端接收到数据然后把数据存储到服务器本地 附加需求:要求要上传的文件名是通过键盘录入的,并且要保证录入的路径是文件路径

0

2个回答

用表记录已有文件的MD5码和保存的路径,有新文件过来的话,解析他的MD5,然后查找数据库是否有记录,有就是存在了,没有就是新文件;
一般来说不是按照文件名的判断是否一个文件的

1
 public static String getMD5Three(String path) {
 2         BigInteger bi = null;
 3         try {
 4             byte[] buffer = new byte[8192];
 5             int len = 0;
 6             MessageDigest md = MessageDigest.getInstance("MD5");
 7             File f = new File(path);
 8             FileInputStream fis = new FileInputStream(f);
 9             while ((len = fis.read(buffer)) != -1) {
10                 md.update(buffer, 0, len);
11             }
12             fis.close();
13             byte[] b = md.digest();
14             bi = new BigInteger(1, b);
15         } catch (NoSuchAlgorithmException e) {
16             e.printStackTrace();
17         } catch (IOException e) {
18             e.printStackTrace();
19         }
20         return bi.toString(16);
21     }

只是客户端只对于一个用户来说 那只需判断文件是否重复 要是有分多用户的 就的分文件夹保存 然后判断此文件夹是否有这个文件

文件名可以用md5进行保存

然后通过new File("文件路径") file.isexist进行判断文件是否存在 路径=保存的文件夹+上传的md5加后缀名

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java实现网络编程中TCP的C-S通信(带界面)
一、核心代码分析说明(1)Sever类——connect()方法:在建立与客户端的连接后,首先需要开启多线程,主线程是显示界面,新开的线程是对数据的处理,包括对客户信息的存储以及对客户发送过来信息的处理。public static void connect() {     try (ServerSocket server = new ServerSocket(PORT)) { while (tr...
java 网络编程(Socket) TCP/UDP 总结案例
网络编程:关注的是底层的数据传输 网页编程:数据的展示 1、基本概念 一、网络:将不同的计算机连接在一起局域网 城域网 互联网 二、地址:Ip地址确定网络上的绝对的地址位置  à房子的地址 三、端口号(相当于房门):区分计算机上的软件à相当于房门两个字节0~65535 共65536个 1、 同一个协议下,端口号不能重复,不同的协议下可以重复 2、 1024以下的端口不要使
java网络编程(TCP、UDP)
java的网络编程: TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。 UDP:UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。   udp和tcp的区别: 1)套接字Socket的参数不同; (2)UDP不需要调用listen和accept; (3)UDP收发数据分别用se...
Java网络编程Demo(一)多线程的TCP网络程序
多线程的TCP网络程序
JAVA网络编程-TCP客户端与服务器端连接
在JAVA网络编程中,分客户端与服务器端,客户端一般用socket创建,服务器端用serversocket创建数据传输用的还是IO流,所以,我们发现它们抛出的异常父类也是IO父类下面,先看客户端代码:public static void main(String[] args)throws IOException { // 要链接的服务器地址与端口 Socket socket = new So...
Java网络编程8.TCP网络编程之服务器多线程实现
TCP网络编程之服务器多线程实现   1、TCP网络编程之服务器多线程实现的背景 (1)假设我们的一个服务器供很多客户端使用,而这些客户端都是来上传文件的。那么,如果服务器端是单线程实现的,则就会出现”先到的客户端优先使用服务器端资源“的现象,即让客户端依次排队使用服务器,这是不符合常理的。常理应该是:不同的客户端会抢占服务器的资源,哪个客户端的带宽大、哪个客户端需要上传的资源小,哪个客户端...
java网络编程基于TCP的多客户端连接服务器
一、使用多线程实现多客户端连接服务端代码: package com.test.net; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; class TCPThrea
网络编程应用:基于TCP协议【实现文件上传】--练习
要求: 基于TCP协议实现一个向服务器端上传文件的功能
Java——多人聊天室(基于TCP的网络编程——Socket)
Java——多人聊天室(基于TCP的网络编程——Socket) 服务端源代码: import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.PrintWri
Java网络编程中的TCP,UDP通信方式详解
Java网络编程中的TCP,UDP通信方式详解 1. TCP方式与UDP方式的区别。 2. TCP方式所使用的方法:Socket,ServerSocket以及服务端与客户端通信实例。 3. UDP方式所使用的方法:DatagramSocket,DatagramPacket以及服务端与客户端通信实例。 一:TCP方式与UDP方式的区别。 在了解TCP与UDP通信的区别之前,先看一下计算机
java网络编程TCP 多线程连接例子
TCP网络编程 根据文件内容读写, 支持多线程。包括客户端和服务端
Java网络编程TCP协议发送接收数据
一、客户端发送,服务器端接收 package net; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; /* * TCP协议接收数据: * A:创建接收端Socket对象 * B:监听客户端连接,返回一个对应的So...
java网络编程之基于TCP的socket编程,实现客户端和服务器相互通信
网络通信 首先说网络通信,网络通信使用IP地址标识internet上的计算机,使用端口号标识服务器上的进程(程序)。也就是说,如果服务器上的一个程序不占用一个端口号,用户程序就无法找到它,就无法和该程序交互通信。端口号选取大于1023。 当两个程序需要通信时,它们可以通过使用Socket类建立套接字并连接在一起(端口号与IP地址的组合得出一个网络套接字) 套接字 它允许程序把网络连接看成一个流(...
Java网络编程之(二): TCP的多线程连接
Java网络编程之(二): TCP的多线程连接 相比前面一个例子,这里加入了多线程的操作,服务器可以不断读取客户端数据,并向客户端写入数据;客户端也可以不断的读取服务器数据,并向服务器写入数据。支持多客户端,功能实际就是一个基于Socket的TCP简易聊天程序,服务端实现了消息的转发。 局域网中电脑A用作服务端,IP为192.168,31.168 同时电脑
网络编程之:TCP服务器的简单实现
说到TCP服务器,就不得不提socket编程,我们知道,在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯⼀一标识⽹网 络通讯中的⼀一个进程,“IP地址+端口号”就称为socket。 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成 的socket pair就唯一标识一个连接。socket本身有“插座”的意思,因此⽤来描述网络连接的一 对⼀的关
Java---网络编程(3)-TCP-互传文件和图片
TCP 建立连接,形成传输数据的通道。 在连接中进行大数据量传输 通过三次握手完成连接,是可靠协议 必须建立连接,效率会稍低 Socket 和 ServerSocket类 TCP传输 TCP Socket:IP地址和端口,套接字 Socket和ServerSocket 建立客户端和服务器端 建立连接后,通过S...
C++网络编程基础代码(服务器)---基于TCP协议
//网络编程服务器 /*服务器端编程的步骤: 1:加载套接字库,创建套接字(WSAStartup() / socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接字设置为监听模式等待连接请求(listen()); 4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept()); 5:用返回的套接字和客户端进行通信(send() /
JAVA网络编程实现简单聊天室
聊天室 实现简单聊天室 能够实现简单功能 1 查看在线人名单 2 私聊 3 群发 4 退出 客户端代码 public class Client { public static void main(String[] args) throws IOException { Socket socket = new Socket("localhost", 5000); ...
TCP-IP学习笔记四:NIO的网络编程-多线程实例
TCP/IP学习笔记四:NIO的网络编程-多线程实例标签(空格分隔): 网络编程 NIO 多线程NIO的多线程编程 对于单线程的程序来说,我们无法达到并行处理,我们要向达到并行处理,必定会使用多线程,但是我们哪些代码使用子线程呢?我们可以对单线程程序进行分析,在程序中最耗时的操作就是I/O操作(读和写)。找到入口就进行改造程序。 服务器端修改代码:package com.socket.nio3
TCPIP网络编程-带详细书签
TCPIP网络编程((韩)尹圣雨,最通俗易懂的网络编程书籍
用基于TCP的网络编程实现多个用户登录功能的简单模拟
Person类: 用来存储每个对象的用户名和密码信息 import java.io.Serializable; public class Person implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String name; p...
JAVA_网络编程_TCP_Socket通信_聊天室_多人聊天/私聊_实现
Socket编程 连接(连接是通过输入输出流来传送数据)   创建服务器 package com.hp.tcp; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net...
Java网络编程:TCP实现文件传输
客户端: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Sock...
java 网络编程之TCP +多线程 + 线程池
* 1.客户端        * 创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器 * 调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流 * 输入流可以读取服务端输出流写出的数据 * 输出流可以写出数据到服务端的输入流        Socket socket = new Socket(ip,port);...
网络编程(4)用TCP实现图片上传
分析: 客户端:要求你从c盘下获取一张图片 服务器:收到客户端的获取图片,并保存到一个文件夹中。 数据源:C盘的图片 数据目的:服务器 /*  * 实现TCP图片上传客户端  * 1、Socket连接服务器,连不上啥也不说了  * 2、通过Socket获取字节输出流,写图片  * 3、使用自己的流对象读取图片数据源  * 4、读取图片将图片写到服务器,采取字节缓冲流提高效率  * 5、使...
java网络编程实验
课程设计要求的网络编程,亲测可信,通过c/s模式,实现局域网内聊天,初学者编写,注释较多,比较简单易懂
JAVA网络编程(3):Java编写在TCP网络连接上传递对象
要点: *(1)ObjectInputStream和ObjectOutputStream可以从底层输入流中读取 对象类型的数据和将对象类型的数据写入到底层输出流。 *(2)使用ObjectInputStream和ObjectOutputStream来包装底层网络字节,TCP服务器和TCP客户端之间就可以传递对象类型的数据。 代码实现 import java.io.*; import java.n
通信网络编程第一次作业
1、 请指出MAC地址、IPv4、IPv6和端口各占多少位?如何获取本机的MAC地址和IP地址? IPv4的端口占32位; IPv6的端口占128位; MAC的地址占48位; 在OSI模型中,第三层网络层负责IP地址,第二层数据链路层负责MAC地址,因此一个主机会有一个MAC地址,而每个网络位置会有一个专属它的IP地址; 在系统管理界面中,使用ipconfig /all命令可以获得MAC
Java实验报告(网络编程)
1.使用Socket编程,客户机发送圆的半径r(整型)值到服务器,服务器接收r值并计算该圆的面积,之后将该面积值返回给客户机,客户机接收面积值并输出。 2.调试、理解并完成教学课件中“一对多C/S通讯程序的实现”之多线程实现方式。 MultiThreadServer.java,Client1.java
TCP/IP网络编程——多线程并发服务器的实现(构建多人聊天室)
话不多说,实现了多个客户端可以交换信息的简单聊天程序,程序如下:chat_server.c//多线程并发服务器端 //访问全局变量clnt_cnt和clnt_socks的代码将构成临界区 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #in...
Linux----网络编程(TCP网络通信服务器客户端编程流程与其循环实现)
一、TCP的服务器客户端编程流程 1、服务器 ser.c 1 #include <stdio.h> 2 #include <assert.h> 3 #include <stdlib.h> 4 #include <unistd.h> 5 #include <string.h> 6 #include <sy...
Linux网络编程 5 - select模式的TCP服务器
        为了同时处理多个客户端的连接,上一篇介绍了利用多线程的方法实现,每个连接新建一个线程,然后各自去处理。这是最简单也是最容易想到的方式。客户端的连接存在,线程就存在。         但是,对于每一个客户端,并不是时时刻刻都会向服务端发送消息的,随着客户端连接数量的增加,创建的线程也越来越多,系统在线程和进程之间切换的开销就会变得非常大。         再者,如果客户端频繁的创...
TCP/IP网络编程_echo回声服务器端与/客户端
//自己在写的时候碰到的坑 1.注意服务器端serv_adr.sin_addr.s_addr=htonl(INADDR_ANY)写成inet_addr(INADDR_ANY)就是错的 2.注意客户端serv_adr.sin_addr.s_addr=inet_addr(argv[1]);写成htonl(argv[1])就是错的 3.注意while((str_len=read(clnt_sock,m
基于TCP的Socket编程服务器和客户端代码
基于TCP的Socket编程服务器和客户端代码
网络编程------TCP协议实现网络版三子棋小游戏
以下用到的TCP协议的程序代码见:网络编程------TCP协议网络程序以下用到的三子棋的游戏规则的相关代码见:三子棋        在网络编程------TCP协议网络程序一文中根据TCP协议分别实现了单进程,多进程,多线程版本的服务器端程序。在多进程和多线程环境中服务器可以同时接收来自多个客户端的连接请求并与之互发消息进行通信。在本文中将继续根据TCP协议来实现与客户端的通信。        ...
Linux C/C++网络编程基础 TCP简单实现
简单的linux下socket编程,分别基于TCP协议实现的简单程序linux下socket编程可以概括为以下几个函数的运用:socket()bind()listen()connect()accept()read()write()close()函数server端/* * socket简单编程 服务端 */ #include <stdio.h> #include <stri...
TCP/IP 网络编程(四)
套接字和标准 I/O标准 I/O 函数的优点 具有良好的可移植性 可以利用缓冲提高性能 创建套接字时,操作系统将生成用于 I/O 的缓冲。此缓冲在执行 TCP 协议时发挥重要作用。若使用标准函数,将会获得额外的另一缓冲的支持。函数缓冲是为了提高传输性能,套接字缓冲是为了实现协议,如窗口控制、重传等。通过以下两个角度考虑性能的提高: 传输的数据量 数据向输出缓冲移动的次数 标准函数的缺点: 不容易进行
网络编程——TCP文件传输
网络编程——TCP文件传输 网络编程TCP文件传输 要求  思路  结果  代码  客户端  服务端  要求- 客户端向服务端发起socket连接,建立数据传输通道- 客户端向服务端发送要传输的文件名称,以’#’字符结尾,服务端逐字符接受,知道接收到‘#’- 客户端向服务端发送文件长度,4字节- 客户端向服务端发送文件内容 - 服务端接受完文件之后,发送“OK”- 客户端接收到“OK”,关闭套接字
java网络编程 TCP
package cn.hncu.tcp.show; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; //import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; ...
基于socket实现服务端和客户端五子棋小游戏
基于socket实现服务端和客户端五子棋小游戏,用java语言实现的,实现了服务端和客户端,是初学者学习java和网络编程语言的好例子。也适合二次开发。欢迎大家下载[下载地址](https://download.csdn.net/download/myzshare/10665122) ...