1.传送文本文件

1.1服务端

package com;

import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket; public class FileServerSocket {
public static void main(String[] args) {
try {
File file = new File("F:\\Test\\129.mp3"); ServerSocket server = new ServerSocket(8008);
DataInputStream dataInput;
String fileMessage = ""; FileWriter fileWriter = new FileWriter(file,true);
BufferedWriter bw = new BufferedWriter(fileWriter); Socket socket;
System.out.println("服务器已启动~~~");
socket = server.accept();
System.out.println("捕获到连接");
while(true){
dataInput = new DataInputStream(socket.getInputStream());
fileMessage = dataInput.readUTF(); bw.write(fileMessage);
bw.flush();
System.out.println(fileMessage);
if(fileMessage.equals("exit")){
System.out.println("传输完成~~~");
break;
}
} bw.close();
dataInput.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

1.2 ### 客户端

package com;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException; public class FileSocket {
public static void main(String[] args) {
try {
File file = new File("F:\\Test\\12.mp3");
Socket socket = new Socket("127.0.0.1",8008);
OutputStream output = socket.getOutputStream(); FileReader fileReader = new FileReader(file);
BufferedReader br = new BufferedReader(fileReader); DataOutputStream dataOutput = new DataOutputStream(output);
dataOutput.writeUTF(file.getName()); String sb = "";
System.out.println("客户端已启动");
while((sb = br.readLine()) != null){
dataOutput.writeUTF(sb);
dataOutput.flush();
}
System.out.println("客户端文件已经传送完成");
dataOutput.close();
br.close();
socket.close(); } catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

2.传送其他文件

2.1 服务端

package fileSocket;

import java.io.DataInputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket; public class Server {
public static void main(String[] args) throws EOFException {
try {
ServerSocket server = new ServerSocket(8008);
DataInputStream dataInput; File file = new File("F:\\Test\\12_3.mp3");
FileOutputStream fileOutput = new FileOutputStream(file); Socket socket;
System.out.println("服务器已启动~~~"); byte byte_[] = new byte[1024 * 4];
int length; socket = server.accept();
System.out.println("捕获到连接");
dataInput = new DataInputStream(socket.getInputStream());
while((length = dataInput.read(byte_,0,byte_.length)) > 0){
fileOutput.write(byte_,0,length);
fileOutput.flush();
}
fileOutput.close();
dataInput.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("接收完成"); }
}

2.2 客户端

package fileSocket;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException; public class Client {
public static void main(String[] args) {
try {
File file = new File("F:\\Test\\12.mp3");
FileInputStream fileStream = new FileInputStream(file); Socket socket = new Socket("127.0.0.1",8008);
OutputStream output = socket.getOutputStream();
DataOutputStream dataOutput = new DataOutputStream(output); byte[] b = new byte[1024 * 4];
System.out.println("客户端已启动");
int length;
while((length = fileStream.read(b,0,b.length)) > 0){
dataOutput.write(b,0,length);
dataOutput.flush();
}
System.out.println("客户端文件已经传送完成");
dataOutput.close();
fileStream.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Socket 传送文件的更多相关文章

  1. socket传送文件

    一.文件传送步骤 我们要利用socket来实现下载一个文件,该如何操作呢? 服务端: 读取文件名 判断文件是否存在 检测文件大小(用于和客户端对比判断文件是否传送完毕) 发送文件大小给客户端 等待客户 ...

  2. socket传送文件格式的问题

    在python3中socket传送文件只能传送‘bytes'类型,如下例子: import socket client = socket.socket()client.connect(("l ...

  3. C语言sendto()函数-经socket传送数据以及recvfrom函数《转》

    相关函数:send, sendmsg, recv, recvfrom, socket 头文件:#include <sys/types.h>   #include <sys/socke ...

  4. python socket 传输文件

    推荐资料 https://www.cnblogs.com/xiaokang01/p/9865724.html socket传输文件 思路: # 先将报头转换成字符串(json.dumps), 再将字符 ...

  5. SZ,RZ传送文件

    linux 和window之间通过xshell的命令 SZ,RZ传送文件:

  6. socket头文件

    一. 三种类型的套接字:1.流式套接字(SOCKET_STREAM)    提供面向连接的可靠的数据传输服务.数据被看作是字节流,无长度限制.例如FTP协议就采用这种.2.数据报式套接字(SOCKET ...

  7. python使用简单http协议来传送文件

    python使用简单http协议来传送文件!在ubuntu环境下,局域网内可以使用nc来传送文件,也可以使用基于Http协议的方式来下载文件我们可以使用python -m SimpleHTTPServ ...

  8. Linux SSH 远程操作与传送文件

    操作系统:centos 6.5 x64 一.远程连接:在进行linux 的 ssh远程操作前,一定要确认linux 是否安装了 openssh-clients,为了方便起见,一般用yum安装即可:# ...

  9. Java使用Socket传输文件遇到的问题(转)

    1.写了一个socket传输文件的程序,发现传输过去文件有问题.找了一下午终于似乎找到了原因,记录下来警示一下: 接受文件的一端,向本地写文件之前使用Thread.sleep(time)休息一下就解决 ...

随机推荐

  1. 黑马程序员:Java基础总结----GUI图形化界面

    黑马程序员:Java基础总结 GUI图形化界面   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流!   GUI(Graphical User Interface)图形化界 ...

  2. Js-Html 前端系列--页面撑开头尾

    今天学习过程中,发现一个超实用的方法,就是当页面有尾部,但是内容又不多的情况下,让中间的内容把尾部撑到底部. <script type="text/javascript"&g ...

  3. hdu 1890 Robotic Sort(splay 区间反转+删点)

    题目链接:hdu 1890 Robotic Sort 题意: 给你n个数,每次找到第i小的数的位置,然后输出这个位置,然后将这个位置前面的数翻转一下,然后删除这个数,这样执行n次. 题解: 典型的sp ...

  4. 第11章:DOM扩展

  5. jQuery事件命名空间

    先看一些代码: 也可以用bind进行事件绑定.我们看到上面的代码,我们可以在事件后面,以点号,加我们的名字,就是事件命名空间.所谓事件命名空间,就是事件类型后面以点语法附加一个别名,以便引用事件,如& ...

  6. Linux 中 sudo、su命令

    sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长15分钟.su : 切换到某某用户模式,提 ...

  7. Token注解防止表单的重复提交

    注解的一些基础: 参见http://blog.csdn.net/duo2005duo/article/details/50505884和 http://blog.csdn.net/duo2005duo ...

  8. [MFC美化] SkinMagic使用详解2- SkinMagic常用函数介绍

    SkinMagic常用函数介绍 (1)InitSkinMagicLib函数:初始化SkinMagic int InitSkinMagicLib( //初始化SkinMagic工具库 HINSTANCE ...

  9. 使用pycharm+pyqt5 调取界面程序

    一.使用QtDesigner制作界面 1)打开的界面设计工具QtDesigner,如图: 2)新建窗体,选择Main Window: 3)分别在窗口添加如下控件,Calendar.3个pushButt ...

  10. AForge.net 使用之录像拍照功能实现

    连接摄像头设备,这里需要引入 AForge.Video; AForge.Video.DirectShow; AForge.Video.FFMPEG; 还需要添加引用,aforge.dll,aforge ...