fileserver.java

来自「蓝牙 Obex 源码 J2me 初学者必须的东西」· Java 代码 · 共 132 行

JAVA
132
字号
import javax.swing.*;          import java.awt.*;import java.awt.event.*;import javax.microedition.io.*;import java.io.*;import javax.bluetooth.*;import javax.obex.*;public class FileServer extends ServerRequestHandler implements ActionListener{	JLabel spacerlabel = new JLabel(" ");	JButton startButton = new JButton("Start Server");	JTextArea textarea = new JTextArea("",20, 40);		public FileServer(){		//Give it the Java look and feel		JFrame.setDefaultLookAndFeelDecorated(true);			JFrame frame = new JFrame("FileServer ");		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		JScrollPane scrollPane = new JScrollPane(textarea);					textarea.setEditable(false);			Container cp = frame.getContentPane();		cp.setLayout(new BoxLayout(cp, BoxLayout.Y_AXIS));		startButton.setAlignmentX(Component.CENTER_ALIGNMENT);		startButton.addActionListener(this);		cp.add(startButton);				spacerlabel.setAlignmentX(Component.CENTER_ALIGNMENT);		cp.add(spacerlabel);				scrollPane.setAlignmentX(Component.CENTER_ALIGNMENT);		cp.add(scrollPane);		frame.pack();		frame.setVisible(true);		updateStatus("[server:] FileServer Application started");		updateStatus("[server:] Press the \"Start Server\" button to await for client devices");	}	public void actionPerformed(ActionEvent e) {		startButton.setEnabled(false);				try {			UUID uuid = new UUID("8841", true);			String url = "btgoep://localhost:" + uuid + ";name=FTP;authenticate=false;master=false;encrypt=false";			SessionNotifier sn = (SessionNotifier)Connector.open(url);			updateStatus("[server:] Now waiting for a client to connect");			sn.acceptAndOpen(this);					updateStatus("[server:] A client is now connected");			} catch (Exception ex){		}						}	public int onConnect(HeaderSet request, HeaderSet reply) {		updateStatus("[server:] The client has created an OBEX session");		return ResponseCodes.OBEX_HTTP_OK;	}			public int onPut (Operation op) {		try {			java.io.InputStream is = op.openInputStream();						updateStatus("Got data bytes " + is.available() + " name " + op.getReceivedHeaders().getHeader(HeaderSet.NAME) + " type " + op.getType());						File f = new File((String)op.getReceivedHeaders().getHeader(HeaderSet.NAME));			FileOutputStream fos = new FileOutputStream (f);			byte b[] = new byte[1000];			int len;						while (is.available() > 0 && (len = is.read(b)) > 0) {				fos.write (b, 0, len);			}						fos.close();			updateStatus("[server:] Wrote data to " + f.getAbsolutePath());		} catch (Exception e) { 			e.printStackTrace(); 		}								return ResponseCodes.OBEX_HTTP_OK;	}							public void onDisconnect (HeaderSet req, HeaderSet resp) {								updateStatus("[server:] The client has disconnected the OBEX session");									}	public void updateStatus(String message){		textarea.append("\n" + message);	}	public static void main(String[] args) {		new FileServer();	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?