首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 网络文件传输 JAVA [已结贴,结贴人:java2000_net]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-06-26 15:24:31 楼主


    平台要求:
    3. Windows或Unix/Linux
    4. JAVA/VC/BCB/Delphi

    功能要求:
    4. 通过SOCKET实现点对点的文件交换功能
    5. 支持连接握手、登录校验、文件传输请求应答、出错重传等交互的通信协议机制
    6. 提供简单的用户界面或命令行界
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-06-26 15:27:301楼 得分:0
    最好能给出我代码,一步一步的教我可以吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-06-27 00:15:412楼 得分:0
    该回复于2008-08-22 22:05:28被管理员或版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-07-03 09:24:023楼 得分:7
    天上没有馅饼
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • init
    • 等级:
    发表于:2007-07-03 12:54:084楼 得分:7
    4.JAVA/VC/BCB/Delphi
    which   one   do   u   really   need?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kulin3422
    • 等级:
    发表于:2007-07-03 14:02:125楼 得分:6
    package   messager;

    import   java.io.*;
    import   java.net.Socket;

    public   abstract   class   TCP   implements   Runnable   {
    protected   Socket   s   =   null;
    protected   InputStream   in   =   null;
    protected   OutputStream   out   =   null;
    protected   int   port   =   9999;

    private   Thread   thread   =   null;

    private   InputStream   standardIn   =   System.in;
    private   PrintStream   standardOut   =   System.out;

    private   boolean   connectionClosed   =   false;

    public   abstract   void   initialize();

    public   void   startCommunicate()   {
    initialize();
    thread   =   new   Thread(this);
    thread.start();
    sendMessage();
    }

    public   void   run()   {
    receiveMessage();
    try   {
    in.close();
    standardOut.print( "\nCommunication   is   over ");

    standardIn.close();
    }   catch   (IOException   e)   {
    //   TODO   Auto-generated   catch   block
    e.printStackTrace();
    }
    }

    public   void   close()   {
    try   {
    out.close();

    try   {
    thread.join();
    }   catch   (InterruptedException   e)   {
    e.printStackTrace();
    }

    if   (s   !=   null)
    s.close();
    }   catch   (IOException   e)   {
    e.printStackTrace();
    }
    }

    private   String   getMessage()   {
    int   ch;
    StringBuilder   str   =   new   StringBuilder();
    try   {
    int   length   =   in.read();
    if   (length   ==   -1)   return   null;
    while   (length   >   0)   {
    ch   =   in.read();
    str.append((char)ch);
    length--;
    }
    }   catch   (IOException   e)   {
    //e.printStackTrace();
    standardOut.print( "... ");
    }
    return   str.toString();
    }

    public   void   receiveMessage()   {
    String   message   =   null;
    while   (!connectionClosed   &&   (message   =   getMessage())   !=   null)   {
    if   (message.length()   >   0)   {
    standardOut.print( ":> ");
    standardOut.println(message);
    }
    }
    }

    public   void   sendMessage()   {
    int   ch;
    StringBuilder   str   =   new   StringBuilder();
    standardOut.print( "\r#   ");
    try   {
    while   ((ch   =   standardIn.read())   !=   -1)   {
    if   (ch   !=   13   &&   ch   !=   10)
    str.append((char)ch);
    else   if   (ch   ==   13)
    {
    out.write(str.length());
    for   (int   i   =   0;   i   <   str.length();   i++)
    out.write(str.charAt(i));
    str   =   new   StringBuilder();
    standardOut.print( "#   ");
    }
    }

    connectionClosed   =   true;
    }   catch   (IOException   e)   {
    e.printStackTrace();
    }
    }
    }

    package   messager;

    import   java.net.*;
    import   java.io.*;

    public   class   TCPClient   extends   TCP   {
    private   InetAddress   serverAddress   =   null;

    public   TCPClient(int   port)   {
    try   {
    this.serverAddress   =   InetAddress.getLocalHost();
    }   catch   (UnknownHostException   e)   {
    //   TODO   Auto-generated   catch   block
    e.printStackTrace();
    }
    this.port   =   port;
    }

    public   TCPClient(String   serverHost,   int   port)   {
    try   {
    this.serverAddress   =   InetAddress.getByName(serverHost);
    }   catch   (UnknownHostException   e)   {
    e.printStackTrace();
    }
    this.port   =   port;
    }

    public   void   initialize()   {
    Socket   s;
    try   {
    s   =   new   Socket(serverAddress,   port);
    in   =   s.getInputStream();
    out   =   s.getOutputStream();
    }   catch   (IOException   e)   {
    e.printStackTrace();
    }
    }

    public   static   void   main(String[]   args)   throws   IOException   {
    String   ip   =   null;
    int   port   =   9999;
    if   (args.length   ==   2)   {
    ip   =   args[0];
    port   =   Integer.parseInt(args[1]);
    }
    else   if   (args.length   ==   1)   {
    ip   =   args[0];
    }
    TCPClient   client   =   null;
    if   (ip   !=   null)
    client   =   new   TCPClient(ip,   port);
    else
    client   =   new   TCPClient(port);
    client.startCommunicate();
    client.close();
    }
    }
    package   messager;

    import   java.net.*;
    import   java.io.*;

    public   class   TCPServer   extends   TCP{
    private   ServerSocket   ss   =   null;

    public   TCPServer(int   port)   {
    this.port   =   port;
    }

    public   void   initialize()   {
    try   {
    ss   =   new   ServerSocket(port);
    s   =   ss.accept();
    in   =   s.getInputStream();
    out   =   s.getOutputStream();
    }   catch   (IOException   e)   {
    e.printStackTrace();
    }
    }

    public   void   close()   {
    super.close();
    try   {
    ss.close();
    }   catch   (IOException   e)   {
    //   TODO   Auto-generated   catch   block
    e.printStackTrace();
    }
    }

    public   static   void   main(String[]   args)   throws   IOException   {
    int   port   =   9999;
    if   (args.length   >   0)
    port   =   Integer.parseInt(args[0]);
    TCPServer   server   =   new   TCPServer(port);
    server.startCommunicate();
    server.close();
    }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kulin3422
    • 等级:
    发表于:2007-07-03 14:03:256楼 得分:0
    这是以前做的点对点通信的   把它稍微改装下就能达到你要的效果了
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved