added FileServer class
git-svn-id: svn://anubis/gvsu@31 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
parent
51a57271b3
commit
aef571e8be
51
cs654/proj1/FileServer.java
Normal file
51
cs654/proj1/FileServer.java
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
|
||||
public class FileServer implements Runnable
|
||||
{
|
||||
private int m_port;
|
||||
private String m_rootPath;
|
||||
private ServerSocket m_serverSocket;
|
||||
|
||||
public FileServer(int port, String rootPath)
|
||||
{
|
||||
m_port = port;
|
||||
m_rootPath = rootPath;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
try {
|
||||
m_serverSocket = new ServerSocket(m_port);
|
||||
|
||||
/* porcess connection requests */
|
||||
for (;;)
|
||||
{
|
||||
Socket clientSocket = m_serverSocket.accept();
|
||||
|
||||
Thread thread = new Thread(new FileHandler(clientSocket));
|
||||
thread.start();
|
||||
}
|
||||
} catch (IOException ioe) {
|
||||
System.out.println("KaZaClient: IO Exception!");
|
||||
ioe.printStackTrace();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private class FileHandler implements Runnable
|
||||
{
|
||||
private Socket m_socket;
|
||||
|
||||
public FileHandler(Socket socket)
|
||||
{
|
||||
m_socket = socket;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
@ -1,10 +1,17 @@
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
|
||||
public class KaZaClient
|
||||
{
|
||||
private String m_sharedFolder;
|
||||
public static final int LISTEN_PORT = 3443;
|
||||
|
||||
public KaZaClient(String userName, int kbps,
|
||||
String sharedFolder, String server)
|
||||
{
|
||||
m_sharedFolder = sharedFolder;
|
||||
Thread fsThread = new Thread(new FileServer(LISTEN_PORT, m_sharedFolder));
|
||||
}
|
||||
}
|
||||
|
@ -6,19 +6,25 @@ import java.util.*;
|
||||
|
||||
public class KaZaGUI extends JFrame
|
||||
{
|
||||
private JButton m_browseButton;
|
||||
private JButton m_connectButton;
|
||||
private JButton m_closeButton;
|
||||
private JTextField m_userNameField;
|
||||
private JTextField m_shareFolderField;
|
||||
private JTextField m_statusField;
|
||||
private JTextField m_serverField;
|
||||
private ActionEventHandler m_handler;
|
||||
private JComboBox m_speedCombo;
|
||||
private KaZaClient m_client;
|
||||
private KaZaServer m_server;
|
||||
private Thread m_serverThread;
|
||||
private JTextField m_serverStatusField;
|
||||
|
||||
/* client tab components */
|
||||
private JButton m_browseButton;
|
||||
private JButton m_connectButton;
|
||||
private JButton m_closeButton;
|
||||
private JButton m_searchButton;
|
||||
private JTextField m_userNameField;
|
||||
private JTextField m_shareFolderField;
|
||||
private JLabel m_statusLabel;
|
||||
private JTextField m_serverNameField;
|
||||
private JTextField m_queryField;
|
||||
private JComboBox m_speedCombo;
|
||||
|
||||
/* server tab components */
|
||||
private JLabel m_serverStatusLabel;
|
||||
private JButton m_serverStartButton;
|
||||
|
||||
public KaZaGUI()
|
||||
@ -73,7 +79,7 @@ public class KaZaGUI extends JFrame
|
||||
m_client = new KaZaClient(m_userNameField.getText(),
|
||||
cs.getKbps(),
|
||||
m_shareFolderField.getText(),
|
||||
m_serverField.getText());
|
||||
m_serverNameField.getText());
|
||||
}
|
||||
else if (e.getSource() == m_serverStartButton)
|
||||
{
|
||||
@ -105,12 +111,14 @@ public class KaZaGUI extends JFrame
|
||||
m_shareFolderField = new JTextField();
|
||||
m_browseButton = new JButton("...");
|
||||
m_browseButton.addActionListener(m_handler);
|
||||
m_serverField = new JTextField();
|
||||
m_statusField = new JTextField();
|
||||
m_serverNameField = new JTextField();
|
||||
m_statusLabel = new JLabel();
|
||||
m_connectButton = new JButton("Connect");
|
||||
m_connectButton.addActionListener(m_handler);
|
||||
m_closeButton = new JButton("Close");
|
||||
m_closeButton.addActionListener(m_handler);
|
||||
m_searchButton = new JButton("Search");
|
||||
m_searchButton.addActionListener(m_handler);
|
||||
Vector<ConnectionSpeed> speeds = new Vector<ConnectionSpeed>();
|
||||
speeds.add(new ConnectionSpeed("Modem", 50));
|
||||
speeds.add(new ConnectionSpeed("768 Kbps", 768));
|
||||
@ -125,6 +133,7 @@ public class KaZaGUI extends JFrame
|
||||
m_speedCombo = new JComboBox(speeds);
|
||||
m_speedCombo.setSelectedIndex(3);
|
||||
m_userNameField = new JTextField();
|
||||
m_queryField = new JTextField();
|
||||
|
||||
JPanel clientPanel = new JPanel();
|
||||
clientPanel.setLayout(new BoxLayout(clientPanel, BoxLayout.Y_AXIS));
|
||||
@ -147,7 +156,13 @@ public class KaZaGUI extends JFrame
|
||||
p = new JPanel();
|
||||
p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
|
||||
p.add(new JLabel("Server: "));
|
||||
p.add(m_serverField);
|
||||
p.add(m_serverNameField);
|
||||
clientPanel.add(p);
|
||||
p = new JPanel();
|
||||
p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
|
||||
p.add(new JLabel("Search query: "));
|
||||
p.add(m_queryField);
|
||||
p.add(m_searchButton);
|
||||
clientPanel.add(p);
|
||||
clientPanel.add(new Box.Filler(new Dimension(0, 0),
|
||||
new Dimension(0, Short.MAX_VALUE),
|
||||
@ -155,7 +170,7 @@ public class KaZaGUI extends JFrame
|
||||
Short.MAX_VALUE)));
|
||||
p = new JPanel();
|
||||
p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
|
||||
p.add(m_statusField);
|
||||
p.add(m_statusLabel);
|
||||
p.add(new Box.Filler(new Dimension(0, 0),
|
||||
new Dimension(Short.MAX_VALUE, 0),
|
||||
new Dimension(Short.MAX_VALUE, Short.MAX_VALUE)));
|
||||
@ -182,8 +197,8 @@ public class KaZaGUI extends JFrame
|
||||
|
||||
private JPanel getServerPanel()
|
||||
{
|
||||
m_serverStatusField = new JTextField();
|
||||
m_serverStartButton = new JButton("Start Server");
|
||||
m_serverStatusLabel = new JLabel();
|
||||
m_serverStartButton = new JButton("Start MNH Server");
|
||||
m_serverStartButton.addActionListener(m_handler);
|
||||
|
||||
JPanel serverPanel = new JPanel();
|
||||
@ -200,7 +215,7 @@ public class KaZaGUI extends JFrame
|
||||
Short.MAX_VALUE)));
|
||||
p = new JPanel();
|
||||
p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
|
||||
p.add(m_serverStatusField);
|
||||
p.add(m_serverStatusLabel);
|
||||
p.add(new Box.Filler(new Dimension(0, 0),
|
||||
new Dimension(Short.MAX_VALUE, 0),
|
||||
new Dimension(Short.MAX_VALUE, Short.MAX_VALUE)));
|
||||
|
@ -8,14 +8,8 @@ public class KaZaServer implements Runnable
|
||||
public static final int LISTEN_PORT = 3442;
|
||||
private ServerSocket m_serverSocket;
|
||||
|
||||
public KaZaServer()
|
||||
{
|
||||
System.out.println("KaZaServer was created");
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
System.out.println("Listening on " + LISTEN_PORT);
|
||||
try {
|
||||
m_serverSocket = new ServerSocket(LISTEN_PORT);
|
||||
|
||||
@ -28,7 +22,7 @@ public class KaZaServer implements Runnable
|
||||
thread.start();
|
||||
}
|
||||
} catch (IOException ioe) {
|
||||
System.out.println("IO Exception!");
|
||||
System.out.println("KaZaServer: IO Exception!");
|
||||
ioe.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user