ClientTcpSend.java   client发送类



package com.yjf.test;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.net.InetSocketAddress;

import java.net.Socket;



public class ClientTcpSend {

    

    public static String clientip = "127.0.0.1";

    public static int port = 33456;



    public static void main(String[] args) {

        int length = 0;

        byte[] sendBytes = null;

        Socket socket = null;

        DataOutputStream dos = null;

        FileInputStream fis = null;

        try {

            try {

                socket = new Socket();

                socket.connect(new InetSocketAddress(clientip, port),30 * 1000);

                dos = new DataOutputStream(socket.getOutputStream());

                File file = new File("F:\\aa.xml");

                fis = new FileInputStream(file);

                sendBytes = new byte[1024*4];

                while ((length = fis.read(sendBytes, 0, sendBytes.length)) > 0) {

                    dos.write(sendBytes, 0, length);

                    dos.flush();

                }

            } finally {

                if (dos != null)

                    dos.close();

                if (fis != null)

                    fis.close();

                if (socket != null)

                    socket.close();

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}





ServerTcpListener.java server监听类



package com.yjf.test;

import java.net.*;

import java.io.*;



public class ServerTcpListener implements Runnable {



    public static void main(String[] args) {



        try {

            final ServerSocket server = new ServerSocket(ClientTcpSend.port);

            Thread th = new Thread(new Runnable() {

                public void run() {

                    while (true) {

                        try {

                            System.out.println("開始监听...");

                            Socket socket = server.accept();

                            System.out.println("有链接");

                            receiveFile(socket);

                        } catch (Exception e) {

                        }

                    }

                }



            });



            th.run(); //启动线程执行

        } catch (Exception e) {

            e.printStackTrace();

        }

    }



    public void run() {

    }



    public static void receiveFile(Socket socket) {



        byte[] inputByte = null;

        int length = 0;

        DataInputStream dis = null;

        FileOutputStream fos = null;

        try {

            try {



                dis = new DataInputStream(socket.getInputStream());

                fos = new FileOutputStream(new File("E:\\aa.xml"));

                inputByte = new byte[1024*4];

                System.out.println("開始接收数据...");

                while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) {

                    fos.write(inputByte, 0, length);

                    fos.flush();

                }

                System.out.println("完毕接收");

            } finally {

                if (fos != null)

                    fos.close();

                if (dis != null)

                    dis.close();

                if (socket != null)

                    socket.close();

            }

        } catch (Exception e) {



        }



    }

}



java socket通信-传输文件图片--传输图片java socket通信-传输文件图片--传输图片

java socket通信-传输文件图片--传输图片的更多相关文章

  1. Java Socket实战之七 使用Socket通信传输文件

    http://blog.csdn.net/kongxx/article/details/7319410 package com.googlecode.garbagecan.test.socket.ni ...

  2. java Socket通信使用BufferedReader和BufferedWriter的注意事项

    注意事项:readLine()要求有换行标识,write()要输出换行标识,要调用flush()刷新缓冲区. 以下是取自java socket通信中的一小段代码. BufferedReader rea ...

  3. Java Socket通信读取相关信息代码

    转自:http://developer.51cto.com/art/201003/190206.htm Java Socket通信读取有不少需要我们注意的知识点.当我们在使用的时候有很多的问题摆在我们 ...

  4. 解决java socket在传输汉字时出现截断导致乱码的问题

    解决java socket在传输汉字时出现截断导致乱码的问题 当使用socket进行TCP数据传输时,传输的字符串会编码成字节数组,当采用utf8编码时,数字与字母长度为1个字节,而汉字一般为3个字节 ...

  5. JAVA Socket通信 打造属于自己的网盘

    近一个月没敲JAVA代码了,最近老师布置了一个写JAVA网盘的作业,总共花了十几个小时,总算写完了,debug真的累,感觉自己还是菜了,没有那种有一个想法就能马上用代码实现的能力....不扯了,下面开 ...

  6. java socket之上传文件

    一.功能介绍 该功能主要实现,将客户端的:F:/work/socketSample/filetemp/client/test_client.txt上传到服务端F:/work/socketSample/ ...

  7. java socket之传输实体类对象

    一.TCP编程     TCP协议是面向连接的.可靠地.有序的,以字节流的方式发送数据.java实现TCP通信依靠2个类:客户端的Socket类和服务器端的ServerSocket类. 基于TCP通信 ...

  8. java Socket通信,客户端与服务端相互发消息

    1.通信过程 网络分为应用层,http.ssh.telnet就是属于这一类,建立在传输层的基础上.其实就是定义了各自的编码解码格式,分层如下: 2.Socket连接 上述通信都要先在传输层有建立连接的 ...

  9. 【Java】Java socket通信使用read,readline函数的阻塞问题

    Socket通信是Java网络编程中比较基础的部分,其原理其实就是源ip,源端口和目的ip,目的端口组成的套接字通信.其底层还设及到了TCP协议的通信. Java中的Socket通信可以通过客户端的S ...

随机推荐

  1. ny495 少年 DXH

    少年 DXH 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 大家都知道,DXH 幼时性格怪癖,小朋友都不喜欢和他玩,这种情况一直到 DXH 的少年时期也没有改变.少 ...

  2. 利用Python imaplib和email模块 读取邮件文本内容及附件内容

    python使用imap接收邮件的过程探索 https://www.cnblogs.com/yhlx/archive/2013/03/22/2975817.html #! encoding:utf8 ...

  3. jQery的方法

    <!DOCTYPE html> <html> <head> <script type="text/javascript" src=&quo ...

  4. my.cnf 配置详解

    调整MySQL运行参数,修改/etc/my.cnf文件调整mysql运行参数重启MySQL后生效,在MySQL4版本以后,一部分内部变量可以在MySQL运行时设置,不过重启MySQL就失效了. mys ...

  5. Python 并行分布式框架 Celery

    Celery 简介 除了redis,还可以使用另外一个神器---Celery.Celery是一个异步任务的调度工具. Celery 是 Distributed Task Queue,分布式任务队列,分 ...

  6. 2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼【转】

    摘要: 这篇文章给大家带来<五大主流浏览器 HTML5 和 CSS3 兼容性大比拼>,让我们一起来看看2013年的浏览器现状.浏览器厂商之间的竞争促使各大浏览器对 HTML5 和 CSS3 ...

  7. 从sql中image类型字段中导出图片

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  8. inux内存映射和共享内存理解和区别

    可以看到内存映射中需要的一个参数是int fd(文件的标识符),可见函数是通过fd将文件内容映射到一个内存空间, 我需要创建另一个映射来得到文件内容并统计或修改,这时我创建这另一个映射用的仍是mmap ...

  9. HBase shell 命令。

    HBase shell 命令. 进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证( ...

  10. JavaScript中的Boolean 方法与Number方法

    <html> <head> <script type="text/javascript"> //创建 var str = "aaafg ...