当前位置: 技术问答>java相关
高分挑错!高手快来出招啊。。。。。。
来源: 互联网 发布时间:2015-06-10
本文导语: 我现在正在做一个在线交流Applitcation的client端.要求实现身份验证,以及ftp文件传输功能。交谈信息要求能够保存,且也能读出来。交谈的信息以及各动作在textArea1里显示。下面给出我现在做出来的,运行没有错,就...
我现在正在做一个在线交流Applitcation的client端.要求实现身份验证,以及ftp文件传输功能。交谈信息要求能够保存,且也能读出来。交谈的信息以及各动作在textArea1里显示。下面给出我现在做出来的,运行没有错,就是功能上不能实现。
1。身份验证
2。聊天记录能保存及打开
3。想添加ftp文件传输功能,望高手能在里面给添加一下
高手快给虾米指点迷津啊!!!定当高分回报!!!
//////以下程序为在JB6内调试的
//////////////////////////////////////////////////////////////////
/////////////////Application1.java
package aq;
import javax.swing.UIManager;
import java.awt.*;
/**
*
*
*
*
* @author popco2
* @version 1.0
*/
public class Application1 {
boolean packFrame = false;
//Construct the application
public Application1() {
Frame1 frame = new Frame1();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new Application1();
}
}
1。身份验证
2。聊天记录能保存及打开
3。想添加ftp文件传输功能,望高手能在里面给添加一下
高手快给虾米指点迷津啊!!!定当高分回报!!!
//////以下程序为在JB6内调试的
//////////////////////////////////////////////////////////////////
/////////////////Application1.java
package aq;
import javax.swing.UIManager;
import java.awt.*;
/**
*
Title:
*
Description:
*
Copyright: Copyright (c) 2002
*
Company:
* @author popco2
* @version 1.0
*/
public class Application1 {
boolean packFrame = false;
//Construct the application
public Application1() {
Frame1 frame = new Frame1();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new Application1();
}
}
|
你真是吃饱了撑的,呵呵。
要交换文件直接用socket的InputStream/OutputStream就行了。
用FTP干嘛?还要研究FTP协议!!!!
传输文件不是都用FTP的!!!!
要交换文件直接用socket的InputStream/OutputStream就行了。
用FTP干嘛?还要研究FTP协议!!!!
传输文件不是都用FTP的!!!!
|
你要先有一个自定义的通讯协议,
比如A要发文件给B,则在现有的连接中发一个指令,比如:
SendFile from B
A接到后,就准备好接收:
ServerSocket ss = new ServerSocket(自定义一个专用文件接收的端口);
Socket socket = ss.accept();
BufferedInputStream remoteFile = new BufferedInputStream(socket.getInputStream());
BufferedOutputStream saveFile = new BufferedOutputStream(new FileOutputStream(指定存放文件的路径和文件名));
byte[] buffer = new byte[1024*128];
int b;
while ((b=remoteFile.read(buffer)) != -1)
{
saveFile.write(buffer, 0, b);
}
remoteFile.close();
saveFile.close();
socket.close();
ss.close();
在B端发文件,则要:
Socket socket = new Socket(对方IP地址,文件传输端口);
BufferedInputStream localFile = new BufferedInputStream(new FileInputStream(文件路径和文件名));
BufferedOutputStream sendFile = new BufferedOutputStream(socket.getOutputStream());
byte[] buffer = new byte[1024*128];
int b;
while ((b=localFile.read(buffer)) != -1)
{
sendFile.write(buffer, 0, b);
}
localFile.close();
sendFile.close();
socket.close();
比如A要发文件给B,则在现有的连接中发一个指令,比如:
SendFile from B
A接到后,就准备好接收:
ServerSocket ss = new ServerSocket(自定义一个专用文件接收的端口);
Socket socket = ss.accept();
BufferedInputStream remoteFile = new BufferedInputStream(socket.getInputStream());
BufferedOutputStream saveFile = new BufferedOutputStream(new FileOutputStream(指定存放文件的路径和文件名));
byte[] buffer = new byte[1024*128];
int b;
while ((b=remoteFile.read(buffer)) != -1)
{
saveFile.write(buffer, 0, b);
}
remoteFile.close();
saveFile.close();
socket.close();
ss.close();
在B端发文件,则要:
Socket socket = new Socket(对方IP地址,文件传输端口);
BufferedInputStream localFile = new BufferedInputStream(new FileInputStream(文件路径和文件名));
BufferedOutputStream sendFile = new BufferedOutputStream(socket.getOutputStream());
byte[] buffer = new byte[1024*128];
int b;
while ((b=localFile.read(buffer)) != -1)
{
sendFile.write(buffer, 0, b);
}
localFile.close();
sendFile.close();
socket.close();
|
你最好先自己仔细分析一下你的代码,着重指出一些地方供大家帮助解决,否则,大家看到上面那么多就没什么兴趣了(不排除有以外者!),而且,回你帖子的人真的没有必要再花时间去弄明白你那些与问题无关的部分,你肯定要自己熟悉些,所以还是先自己先仔细看看再问!
|
用Jb跟中一下,哪块功能不对,就在那块开刀嘛。
|
server端开FTP了么??
干嘛非要FTP功能??
干嘛非要FTP功能??
|
太长了……
|
老兄,要人帮你写代码也不是这样子的吧
|
格式无需知道,
按二进制的InputStream/OutputStream操作就没问题。
按二进制的InputStream/OutputStream操作就没问题。
|
上面:你还没写东西呢,干嘛flush()?
buff.available() == 0 就说明为空呗
一般都是
if (buff.available() > 0) do....
buff.available() == 0 就说明为空呗
一般都是
if (buff.available() > 0) do....
|
老弟,你就做了个界面呀???
你里面好多东东都还有问题呢!(用什么awt组件呀!),什么方法就大概写了个框架,你还不如直接要别人现成的程序算了!
你里面好多东东都还有问题呢!(用什么awt组件呀!),什么方法就大概写了个框架,你还不如直接要别人现成的程序算了!
|
wa................
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。