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. cocos2d-x解决中文乱码问题的几种办法

    昨天改写cocos2d-x的例程,想在其基础上加上一个计分系统.没有分数实在让人没有玩下去的动力! 我在主场景上加上了一个CCLabelTTF,用于显示分数. 但是意外的发现,当内容含有中文时,CCL ...

  2. iOS-ARC_Xcode检测循环引用

    iOS-ARC_Xcode检测循环引用 一,在桌面上新建立一个工程,在ViewController.m中输入如下代码: - (void)viewDidLoad { [super viewDidLoad ...

  3. struts2请求两次即action方法执行两次

    如果方法使用get开头,也会出现重复执行问题....对struts2无语!!! [转]http://www.xuebuyuan.com/301066.html 就把get开头的方法修改了一下,程序就运 ...

  4. 一款纯css3实现的鼠标经过按钮特效

    今天再给大家带来一款纯css3实现的鼠标经过按钮特效.这款按钮非常简单,但效果很好,非常漂亮.一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <div align=&qu ...

  5. 【C#/WPF】图像数据格式转换时,透明度丢失的问题

    问题:工作中涉及到图像的数据类型转换,经常转着转着发现,到了哪一步图像的透明度丢失了! 例如,Bitmap转BitmapImage的经典代码如下: public static BitmapImage ...

  6. warning: assignment from incompatible pointer type [enabled by default]

    kernel 编译产生这个警告的原因是 不兼容指针类型的赋值 这个原因很有可能是因为返回值和正在接受这个指针类型名不相同. // vim arch/arm/mach-omap2/usb-host.c ...

  7. Apache HttpComponents 获取inputStream

    package org.apache.http.examples.client; import java.io.IOException; import java.io.InputStream; imp ...

  8. BusyBox inittab

    # /etc/inittab init(8) configuration for BusyBox## Copyright (C) 1999-2004 by Erik Andersen <ande ...

  9. 人脸识别技术大总结1——Face Detection & Alignment

    搞了一年人脸识别,寻思着记录点什么,于是想写这么个系列,介绍人脸识别的四大块:Face detection, alignment, verification and identification(re ...

  10. datagrid中reoload提交时如何批量提交表单中的查询条件

    看标题描述有点复杂,看下图: 直接将手工添加的一个个字段直接用一句代码完成. $('#dg_sub').datagrid("reload",$('#searchForm').ser ...