使用eclipse用TCP协议创建服务器和客户端,从客户端向服务器传文件

服务器代码:
package com.xfr.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Test2_UpLoadServer {

/**
 * @param args
 * @throws IOException 
 */
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(6666); //创建服务器,绑定端口号777
System.out.println("启动服务器,端口号为6666!!!");
while(true){
final Socket socket = server.accept();  //接收客户端的请求,有可能接收多个客户端的请求,所以用多线程
new Thread(){
public void run(){
try {
InputStream  is = socket.getInputStream();
//拿到客户端的流
BufferedReader br = new BufferedReader(new InputStreamReader(is));
//用Buffer缓冲区更好读取
PrintStream ps = new PrintStream(socket.getOutputStream());
//用PrintStream的好处是可以写字符也可以写字节
String fileName = br.readLine();//接收到要上传的文件的名字

File dir = new File("upload"); //创建一个文件夹来存放文件
dir.mkdir();

File file = new File(dir,fileName); //对文件名字进行封装来进行判断操作
if(file.exists()){
ps.println("存在"); //若文件在服务器中存在,给与客户端提示
socket.close();
}else{
//文件在服务器中没有,则开始接收
FileOutputStream fos = new FileOutputStream(file);
byte[] arr = new byte[8192];
int len;
while(( len = is.read(arr)) != -1){
fos.write(arr, 0, len);
}

fos.close(); //记得关流和关端口
socket.close();
}

} catch (IOException e) {

e.printStackTrace();
}

}
}.start();

}
}

}

客户端代码:

package com.xfr.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Test2_UploadClient {

/**
 * 向服务器上传文件,文件路径从键盘获取
 * @param args
 * @throws IOException 
 * @throws UnknownHostException 
 */
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = new Socket("169.254.33.252",6666);//创建客户端
File file = getFile();//获取文件

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream ps = new PrintStream(socket.getOutputStream());

ps.println(file.getName()); //将文件名字传给服务器,服务器再对其进行判断
String result = br.readLine();
if("存在".equals(result)){
System.out.println("该文件在服务器中已经存在,请不要重复上传!");
socket.close();
return;
}
else {
//文件不存在的话,开始读取该文件
FileInputStream fis = new FileInputStream(file);
byte[] arr = new byte[8192]; 
int len;
while((len = fis.read(arr)) != -1){

ps.write(arr, 0, len);//向服务器传
}

fis.close();
socket.close();//F:\Test\aaa.txt

}
}

public static File getFile() {
Scanner sc = new Scanner(System.in);
while(true){
String s = sc.nextLine();
File file = new File(s);
if(!file.exists()){
System.out.println("您要上传的文件不存在!重新输入文件路径:");
}
else if(file.isDirectory()){
System.out.println("您输入的是文件夹路径!重新输入文件路径:");
}
else{
return file;
}
}

}

}

###执行后输入路径,路径正确的话程序不会停下来,红方块一直在
图片说明
手动点掉红方块后刷新项目
图片说明
可以看到eclipse当前路径多了要拷贝的文件,可是文件字节大小为0
图片说明

更多

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【TCP】使用TCP协议写一个可以上传文件的服务器和客户端。
上传客户端: package com.xiaozhi.jingtian.tcp; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; public class UploadClient { public static
使用TCP从客户端上传图片到服务器端
客户端: package upload.tcp; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.Unk
使用TCP传输从客户端上传文件到服务器端
客户端: package chat2; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter;
TCP数据传输(四):上传文件操作(将客户端的文件发送到服务器)
TCP数据传输:上传文件操作(将客户端的文件发送到服务器)
Tcp从Socket客户端上传文件到ServerSocket服务端
目的: 从客户端上传指定的文件到服务端,服务端返回上传结果 思路: 一、客户端:        1.创建客户端Socket,指定好IP地址和端口号        2.创建要上传的文件流对象        3.创建写入流(网络流),从Socket获取。将指定文件写入到网络流中,以便服务端接收        4.从网络流中接收服务端返回的信息        5.关闭流资源 二
python使用tcp socket 传输文件-服务端,客户端
1.文件接收-服务端#_*_coding:utf-8_*_ # !/etc/bin/env python2.7 #coded by wangjd@2017 #socket file server import socket import SocketServer import struct import os #导入外部插件 #定义服务器,地址,端口 address=("",9999) #(ip,p
使用TCP协议实现客户端和服务器数据传输
/*客户端和服务端互访,传输字节流*/ import java.net.*; import java.io.*; class TCPClient2 { public static void main(String[] args) throws Exception { Socket s=new Socket ("192.168.191.1",10004); OutputStrea
使用TCP协议写一个可以上传文件的服务器和客户端。
public class Test9  {                  public static void main(String[] args)      {}      }   //客户端   class Client {         public static void main(String[] args) throws Exception        
Java利用TCP协议发送文件(一)--服务器端
最近要写一个使用TCP进行文件传输的软件,考虑客户端是使用手机的,因此,准备采用Java作为开发语言,自己本身对于Java本不熟,还好,有个热心的网友已经将TA的代码公开了,有了这个基本原型,就可以进行进一步开发了。     服务器端采用的是TCP server socket监听端口,如果有客户端连接到服务器,就创建一个新的线程进行处理,在这个线程中,只接受客户端发送过来的数据,并保
Java网络编程之TCP协议下—上传文件到服务器程序
上传文件到服务器程序,代码下载地址:点击下载,欢迎大家下载和指点 客户端源码: package cn.itcast.day_21.upload; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; imp
使用TCP协议向服务器上传一个图片
上传要求:客户端需求:把一个图片文件发送到服务端并读取回馈信息。要求判断文件是否存在及格式是否为jpg或gif并要求文件小于2M。服务端需求:接收客户端发送过来的图片数据。进行存储后,回馈一个 上传成功字样。支持多用户的并发访问。特别说明,为了避免法律纠纷,程序员应该将上传文件的电脑IP记录下来import java.io.BufferedInputStream; import java.io.B...
(TCP模式)客户端与服务器之间的文件传输
1 .先看需求: 上传文件 将 客户端的文件上传到 服务器 2 . 步骤: 2-1.创建socket输出流,为了方便往socket写数据: os = socket.getOutputStream(); 2-2 . 读取文件读到数组中(fileinputstream) 将数组中的数据通过os写入socket 3 . 3-1.服务器端,先接收一个
tcp协议服务器和客户端相互发送数据
package com.neutron.network.tcp.demo; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.net.Unknow
c++ mfc客户端服务器端文件传输
vc6.0下编译使用
使用TCP协议实现客户端向服务器发送图片
使用TCP协议实现客户端向服务器发送图片
基于TCP协议实现服务器和客户端的通信程序
实习期间,项目要求学习MFC编程和SOCKET编程,先写了一个入门的小程序来熟悉一下。 服务器的界面图: 为了简化,将服务器的IP和Port固定为127.0.0.1和5000 【启动】按钮用来启动服务器 代码: void CServerDlg::OnBnClickedStartButton() { // TODO: 在此添加控件通知处理程序代码 if(0 != WSASt
通过UDP将文件从服务器发送到客户端
通过UDP将文件从服务器发送到客户端 C# 网络服务端和客户端,客户端发送请求,服务端将文件发送到客户端,客户端进行接收
《java入门第一季》之tcp协议下的编程实现键盘录入数据不断地往服务器端发送数据案例
这里要封装通道流,封装键盘录入数据流。 同样地,还是两台电脑。一个客户端,一个服务器。 客户端代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.Output
Linux系统下通过TCP可下载文件的客户端、服务端
这是运行与Linux系统下的多线程并发服务器,可供多个客服端下载普通文件,大型MP3/MP4等文件。 功能通过终端命令进行操作 client端代码: #include #include #include #include #include #include #include /* See NOTES */ #include #i
Linux 下服务器与客户端之间的文件传输
Linux 下服务器与客户端之间的文件传输,利用并发服务器实现多个客户端与服务器之间的交互,利用了linux下的MySQL数据库,实现了登陆界面的注册与登陆。代码简单易懂,很适合初学者
基于TCP socket 的服务器和客户端 可以上传下载文件
基于TCP socket 的服务器和客户端 可以聊天 可以上传\下载文件。有进度条可以产看传送进度
10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
/**10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。    * 客户端*/ import java.io.*; import java.net.*;   public class Test10_Client {    public static void ma
Java练习题-使用TCP协议完成一个客户端一个服务器
import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner;/** * 使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 * *
linux下TCP协议的一个简单客户端和服务器的例子
linux下TCP协议的一个简单客户端和服务器的例子
TCP练习1:服务器端读取图片并发送给客户端,客户端保存图片到本地
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
Qt利用TCP实现客户端与服务器端的数据传输
包含一个客户端和一个服务器端,实现简单的数据传输,个人感觉适于新手学习
java网络编程(一)使用TCP协议完成客户端与服务端的数据传递
java网络编程(一)使用TCP协议完成客户端与服务端的数据传递
TCP服务器和客户端交互
一、实验目的 学习和掌握Linux下的TCP服务器基本原理和基本编程方法,体会TCP与UDP编程的不同,UDP编程:http://blog.csdn.net/yueguanghaidao/article/details/7055985 二、实验平台 Linux操作系统 三、实验内容 编写Linux下TCP服务器套接字程序,程序运行时服务器等待客户的连接,一旦连接成功,
使用TCP协议编写一个网络程序,设置服务器程序监听端口为8002,当与客户端建立连接后,向客户端发送“hello world”,客户端接负责将信息输出
22、使用TCP协议编写一个网络程序,设置服务器程序监听端口为8002,当与客户端建立连接后,向客户端发送“hello world”,客户端接负责将信息输出 提示: 1)使用ServerSocket创建服务器端对象,监听8002端口,调用accept()方法等待客户端连接,当与客户端连接后,调用Socket的getOutputStream()方法获得输出流对象,输出“hello world。
TCP编程例三:从客户端发送文件给服务器端,服务器端保存到本地,并返回“发送成功”给客户端。
从客户端发送文件给服务器端,服务器端保存到本地,并返回“发送成功”给客户端。
Linux下通过TCP传送文件(服务器端)
//文件名不能超过30个字符长度#include #include #include #include #include #include #include #include #include #include #define SERVERPORT 5555 //服务器端口#define MAXACCEPT 5 //最大接受的连
c语言实现socket服务端/客户端通过tcp传送文件
c语言实现socket服务端/客户端通过tcp传送文件
Windows下使用TCP协议变长交互客户端和服务器的数据传输
之前有提及Windows下交互式服务器和客户端进行定长的数据传输,但是这样会存在浪费的情况,所以今天就上传以前课堂上学习过的变长数据传输。 其是在定长数据传输的基础上,双方发送的数据中不含了一个结构化的头部信息。如: struct { unsigned int reclen; char buf =[MAXLINE]; }packet; 跟前面的工程一样,服务器和客户
实现客户端与服务端之间传输json数据
需求:用户在客户端输入用户名,密码,服务端获取数据后,把这个用户的用户名和密码写入数据库,以完成注册。 步骤: 1. 创建数据库,并创建表。 2. 利用myeclipse创建新工程,利用JDBC实现java操纵数据库。 3. 实现客户端类,服务端类。 具体实现:1.创建数据表create table usertable ( username VARCHAR(20), pawd VARCHAR
用 Java 模拟 TCP 传输的客户端和服务端
一、创建TCP传输的客户端 1、建立TCP客户端的Socket服务,使用的是Socket对象,建议该对象一创建就明确目的地,即要连接的主机; 2、如果连接建立成功,说明数据传输通道已建立,该通道就是Socket流,是底层建立好的,既然是流,说着这里既有输入流,又有输出流,想要输入流或者输出流对象,可以通过Socket来获取
用C++进行文件传输,有服务端和客户端
这是用vc写的服务端和客户端的点对点传输文件的一个实例,发送端发送文件时进入等待状态,接收端输入发送端的IP地址即可马上接收。
基于TCP的服务器端/客户端(二)---------网络编程(Linux----C)
基于TCP的服务器端/客户端(二)---网络编程(Linux--C) 在基于TCP的服务器端/客户端(一)中的回声客户端存在的问题: 下列是echo_client.c中的代码: write(sock,message,strlen(message)); str_len=read(sock,message,1024-1); message[str_len]=0; printf("
基于Visual C++ 客户端与服务器之间的文件传输
基于Visual C++ Socket达到客户端与服务器之间的通信的母的,实现文件传输的功能。本资源提供实现的源代码,但注意只适用于小型文件的传输
“黑马程序员”使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印
package com.itheima; import java.net.*; import java.io.*; public class TCPServer { public static void main(String[] args)throws Exception{ ServerSocket ss=new ServerSocket(111); while(true){
tcp客户端与服务端之间的通信实例
假设你只有一台电脑,还不能连接上Internet, 那如何进行网络编程呢?用回测地址吧。       服务端的程序为:
基于SOCKET的文件传输服务端+客户端(C++ winsock)
基于winsock文件传输的C++文件传输实现,TCP/IP协议,服务端和客户端都有,简单易学
Qt实现服务器与客户端传输文字和图片(Qt②)
qt 写的socket服务器和客户端实现简单的连接 并接受和发送字符串和图片。
Qt中利用TCP实现客户端与服务器端的数据传输
最近想用Qt做一个简单的聊天室,用到了TCP传输,在此整理一下有关TCP传输的东西。(只是简单的实现数据传送,对于一些出错情况没有考虑,适于新手学习,本人也是个菜鸟) 在Qt中有QTcpsockey和QTcpserver两个类,QTcpserver主要是用来在服务器端监听客户端的连接请求,QTcpsocket用来传输数据。 服务器的建立:在.h文件中添加   QTcpSocket *
Python使用tcp编写一个简易的文件下载器(服务端和客户端)
使用tcp编写一个简易的文件下载器 要求:需编写文件下载器服务端和文件下载器客户端 客户端: """ (1)创建客户端socket (2)连接服务端ip和端口 (3)send消息或recv消息 (4)关闭客户端socket """ import socket def main():     # 创建socket     tcp_client_socket = socket.socket(soc...
TCP协议----客户端发送,服务器接收
#include<stdio.h> #include<stdlib.h> #include<string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>#define PORT 8888 //定义端口号int main() { i
linux socket TCP 服务器向客户端传文件(任意格式)
linux socket TCP 服务器向客户端传文件(任意格式)
基于TCP的聊天室(包含客户端与服务器端)
该聊天室是基于TCP。程序分为两个部分,客户端和服务器端,利用Socket(套接字)编程,实现了多个客户端之间的简单通信。该程序是学习网络编程的最佳选择,它能帮助你迅速的掌握网络编程的思路。
客户端与服务器端的交互——上传文件
其实嘛,这篇文章比较水,没有啥技术含量,主要是用来熟练开源
tcp&udp服务器端客户端测试工具
可以做为tcp和udp的客户端和服务器端发送相关的tcp和udp包。可以发送十六进制和具体的数据
Golang Socket服务端和客户端使用TCP协议通讯
Socket服务器是网络服务中常用的服务器。使用go语言实现这个业务场景是很容易的。    这样的网络通讯,需要一个服务端和至少一个客户端。    我们计划构建一个这样的通讯工程。服务端启动后等待客户端的访问。客户端发送一段信息给服务端。服务端接收到信息后,再回馈给客户端一段信息。    首先要建立服务端。服务端最先要做的事情就是"建立Socket端口监听"。 netListen, e
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问