我的聊天/文件传输软件代码(----TransServerSocket代码)
2008-04-14 00:49
489 查看
/** *//**
* 文件传送Socket,使用的是ServerScket和socket技术!
* 处理接收文件
*/
package transSocket;
import java.io.*;
import java.awt.*;
import java.net.*;
import javax.swing.*;
import filetrans.*;
public class TransServerSocket extends Thread...{
private ServerSocket serverSocket;
private Socket socket;
private int port;
private InetAddress address;
private JFrame frame;
/** *//**
* 构造函数
*/
public TransServerSocket(JFrame fra)...{
this.frame=fra;
jbInit();
}
/** *//**
* 函数初始化
*/
public void jbInit()...{
try...{
port =8002;
socket=new Socket();
serverSocket=new ServerSocket(port);
}
catch(IOException e)...{
e.printStackTrace();
}
}
/** *//**
* 处理接收的文件
*/
public void run()...{
try...{
while(true)
...{
int i=0;
BufferedReader buffr=null;
BufferedInputStream buff=null;
InputStream in=null;
InputStream in1=null;
socket=serverSocket.accept();
if(socket!=null) i= JOptionPane.showConfirmDialog(null,"朋友"+socket.getInetAddress().getHostName()+"/"+socket.getInetAddress().getHostAddress()+
"给你传送了文件是否接收YES/NO","传送文件",JOptionPane.YES_NO_OPTION);
if(i==JOptionPane.YES_OPTION) ...{
address=socket.getInetAddress();
in=socket.getInputStream();
ProgressMonitorInputStream pr=new ProgressMonitorInputStream(null,"reading the file",in);
ProgressMonitor prog=pr.getProgressMonitor();
prog.setMillisToPopup(100);
prog.setMillisToDecideToPopup(1);
buff=new BufferedInputStream(pr);
String fileName="";
String filePath="D:/My Documents/";
byte[] b=new byte[50];
byte[] c=new byte[1];
int l=buff.read(c);
int q=0;
while(l!=0&&c[0]!=' ') ...{
b[q++]=c[0];
l=buff.read(c);
}
fileName=new String(b);
if(fileName!=null)...{
FileChooser savefile=new FileChooser(frame);
savefile.setSaveFileChooser(fileName);
int j=savefile.getsaveButton();
if(j==JFileChooser.APPROVE_OPTION) ...{
File file1=savefile.getSaveSelectFile();
if(file1.exists()&&file1.isFile())...{
String st=file1.getAbsolutePath(); System.out.println("4444444444===== "+st);
int m=JOptionPane.showConfirmDialog(null,st+"已经存在,要替换它嗎","保存文件",JOptionPane.WARNING_MESSAGE);
if(m==JOptionPane.YES_OPTION) filePath=st;
else ...{
FileChooser savefile1=new FileChooser(frame);
savefile1.setSaveFileChooser(st);
int n=savefile.getsaveButton();
if(n==JFileChooser.APPROVE_OPTION)...{
File file3=savefile1.getSaveSelectFile();
String str=file3.getAbsolutePath();
filePath=str;
}
}
}
else ...{
File file2=savefile.getSaveSelectFile();
filePath= file2.getAbsolutePath();
}
File file=new File(filePath); System.out.println("filePath111===== "+filePath);
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(file));
int length=0;
while((length=buff.available())!=0)...{
byte[] w=new byte[length];
int p=buff.read(w,0,w.length);
if(p!=-1)...{
out.write(w);
}
}
out.close();
buff.close();
socket.close();
}
}
}
}
}
catch(IOException e)...{
JOptionPane.showMessageDialog(null,"对方下线或者网络出现故障请稍等..........."
,"连接问题",JOptionPane.WARNING_MESSAGE);
e.printStackTrace();
}
catch(Exception ee)...{
ee.printStackTrace();
}
}
}
相关文章推荐
- 我的聊天/文件传输软件代码(----TransClientSocket代码)
- 我的聊天/文件传输软件代码(----ChatReceiveSocket代码)
- 我的聊天/文件传输软件代码(----ChatSendSocket代码)
- 我的聊天/文件传输软件代码(----main主程序)
- 我的聊天/文件传输软件代码(----FileTransFrame代码)
- 我的聊天/文件传输软件代码(----主窗口代码)
- 我的聊天/文件传输软件代码(----FileChooser代码)
- 我的聊天/文件传输软件代码(----MyFilefilter代码)
- 我的聊天/文件传输软件代码(----Popupmenu代码)
- Socket网络编程—简单聊天软件--2、服务器端代码
- 我的聊天/文件传输软件代码(----FriendIP代码)
- linux下socket通信,server和client简单例子 文件传输
- ServerSocket 多人聊天服务器
- 基于Linux的Socket编程之TCP全双工Server-Client聊天程序
- socketserver.py代码阅读笔记
- 基于socket实现的简单聊天android软件
- (32)--使用Socket--udp实现简单的聊天软件
- Node.JS 利用socket.io 实现dj播放及聊天程序 代码
- 用socket编程实现的简单的聊天软件
- android Socket实现简单聊天功能以及文件传输