Rex Mao

分享java技术与生活

2007年5月15日 #

关于留言

由于留言的提示邮件会被标记为垃圾邮件, 所以很多留言我没能发现并回复。
如果有问题要讨论,请大家直接发邮件到邮箱rex_mao@hotmail.com

另外,如果需要源程序,可联系购买,也可提供程序扩展开发。

谢谢。

posted @ 2008-05-24 01:04 Rex Mao| 编辑 收藏

Oracle SQLPLUS 常用命令小结(一)


1. 显示当前连接。

SQL:
        SELECT *                                                                                                                                                 
        FROM V$SESSION                                                                                                                                 
        WHERE STATUS = 'INACTIVE'                                                                                                             
        AND USERNAME IS NOT NULL;                                                                                                         


2. 强制关闭用户的连接

SQL:
    a) SELECT USERNAME, SID, SERIAL#                                                                                                   
        FROM V$SESSION                                                                                                                                 
        WHERE STATUS = 'INACTIVE'                                                                                                             
        AND USERNAME IS NOT NULL;                                                                                                         
                                                                                                                                                                          
    b) ALTER SYSTEM KILL SESSION 'SID, SERIAL#'; --SID 和 SERIAL#是在步骤a)中得到的结果。


3. 从返回的结果中选择第m到n条记录

SQL:
        SELECT *                                                                                                                                                   
        FROM (                                                                                                                                                      
                     SELECT A.*, ROWNUM RN                                                                                                       
                     FROM (                                                                                                                                         
                                   SELECT *                                                                                                                        
                                   FROM YOURTABLE --这里请用你的SELECT语句代替                                            
                                  ) A                                                                                                                                     
                     WHERE ROWNUM <= n                                                                                                              
                     )                                                                                                                                                      
        WHERE RN >= m;                                                                                                                                      
    
4. 重新编译包 (package) 和 包体 (package body)
    此命令可以用于查看在SQLPLUS中创建的package的编译错误。

SQL:
        a) 编译 package
            ALTER PACKAGE YOUR_PACKAGE                                                                                                 
            COMPILE SPECIFICATION;                                                                                                                
        b) 编译 package body

            ALTER PACKAGE YOUR_PACKAGE                                                                                                 
            COMPILE BODY;                                                                                                                                   

        c) 查看错误
            SHOW ERR;                                                                                                                                             

5. 解除锁定的用户

SQL:
SQL:
    ALERT USER USERNAME UNLOCK;


 

posted @ 2008-05-17 14:11 Rex Mao 阅读(3174) | 评论 (2)编辑 收藏

JAVA文件传输程序

这个是我做的另一个毕业设计,使用的最基本的socket通信实现文件传输,使用该程序可同时给多个人发送不同的文件并支持断点续传。
由于只为毕业设计而写的,只实现了功能,没有在速度上优化,发上来只为给要做类似程序的朋友做个参考。以下是毕业论文中的节选。

源代码已经上传了。

3章      设计文档

31       任务概述

       本项任务要开发一款P2P文件传输软件,该软件可以在局域网和互连上使用,具有文件传输,断点续传,多线程连接等功能。

311      开发背景

       随着网络的普及,在网络中交换信息,特别是文件成为使用网络时经常性工作,现有的文件传输工具如QQMSN等,主要功能是作为即时通讯工具使用,而且在局域网中使用时仍需连接到互连网。本文开发的软件基于P2P结构实现文件传输,不依靠服务器维护用户资料,所以,只要两台机器可以连通,就可以进行文件传输。

312       定义

       P2P:即peer-to-peer,可以理解为点对点,或对等传输的意思。

313       开发工具

       开发采用JAVA语言,开发工具为jbuilder 2005

32       文件传输业务流程

321       通讯顺序关系

       在文件传输时,传输过程可以简单的分为4步,如图

1、              由文件发送者发起文件传输,他首先发送文件名,文件大小,验证消息等信息给文件接收者。

2、              文件接收者收到文件信息和发送者信息,决定是否接收,如不接收,则发送拒绝接收消息给文件发送者,文件传输结束。如同意接收,发送同意接收消息和文件传输起始字节(用于断点续传)给发送者。

3、              发送者开始发送文件数据包,直到最后一个文件数据包,发送者在最后一个文件数据包上加上标记。

4、              接收者识别最后一个文件数据包,文件传输成功。


322       文件发送端的详细业务流程


 

图中显示了发送文件时的详细业务流程。

1、首先,要选择要发送的文件,可以选择一个文件或同一个文件夹下的多个文件发送,当选择多个文件时,软件将为每个文件建立一个传输线程。选择文件后,发送者要填写目标IP和端口,由于是基于P2P的文件传输,不存在服务器维护好友列表,所以需要知道目标IP才能传输文件,用户也可以填写验证消息用于描述自己的身份和文件的介绍。

2、发送者收到确认包,判断是否接收文件,如果不接收,则传输结束,如果接收,则打开要发送的文件,设置起始传输字节。

3、发送者读取一个文件片段,加入是否是最后一个文件片段的标志,打包发给接收者。

4、发送完最后一个文件片段时,文件传输结束。

323       文件接收者详细业务流程


 

1、 从一打开软件开始,监听线程就会启动,这时用户就扮演者文件接收者的角色,当有文件发送者发来请求时,监听线程建立与发送者的连接,并创建传输线程,接收者得到发送者传来的文件信息和验证消息,用户还能得到发送者的IP地址,用户根据这些信息决定是否接收文件,并发送确认包给发送者,确认包里包含了是否接收的标志,和开始传输的起始字节。

2、