📄 fileserver.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -