public Irc(Sentence_itf s) { setLayout(new FlowLayout()); text = new TextArea(10, 60); text.setEditable(false); text.setForeground(Color.red); add(text); data = new TextField(60); add(data); Button write_button = new Button("write"); write_button.addActionListener(new writeListener(this)); add(write_button); Button read_button = new Button("read"); read_button.addActionListener(new readListener(this)); add(read_button); setSize(470, 300); text.setBackground(Color.black); show(); sentence = s; }
public void startServer() throws Exception { while (true) { Socket s = server.accept(); cClient.add(new ClientConn(s)); ta.append("NEW-CLIENT " + s.getInetAddress() + ":" + s.getPort()); ta.append("\n" + "CLIENTS-COUNT: " + cClient.size() + "\n\n"); } }
// -------------------------------------------------- public void close() { try { is.close(); os.close(); socket.close(); responseArea.appendText("***Connection closed" + "\n"); } catch (IOException e) { responseArea.appendText("IO Exception" + "\n"); } }
// -------------------------------------------------- public void run() { String inputLine; try { while ((inputLine = is.readLine()) != null) { responseArea.appendText(inputLine + "\n"); } } catch (IOException e) { responseArea.appendText("IO Exception" + "\n"); } }
// -------------------------------------------------- public BaseTConn(String host, String port, TextArea commandArea, TextArea responseArea) { this.commandArea = commandArea; this.responseArea = responseArea; try { socket = new Socket(host, Integer.parseInt(port)); os = new PrintStream(socket.getOutputStream()); is = new DataInputStream(socket.getInputStream()); responseArea.appendText("***Connection established" + "\n"); new Thread(this).start(); } catch (Exception e) { responseArea.appendText("Exception" + "\n"); } }
public ReciveFile() { super("파일전송"); setLayout(null); lbl = new Label("파일 전송을 기다립니다."); lbl.setBounds(10, 30, 230, 20); lbl.setBackground(Color.gray); lbl.setForeground(Color.white); add(lbl); txt = new TextArea("", 0, 0, TextArea.SCROLLBARS_BOTH); txt.setBounds(10, 60, 230, 100); txt.setEditable(false); add(txt); btn = new Button("닫기"); btn.setBounds(105, 170, 40, 20); btn.setVisible(false); btn.addActionListener(this); add(btn); addWindowListener(new WinListener()); setSize(250, 200); show(); try { ServerSocket socket = new ServerSocket(port); Socket sock = null; FileThread client = null; try { sock = socket.accept(); client = new FileThread(this, sock); client.start(); } catch (IOException e) { System.out.println(e); try { if (sock != null) sock.close(); } catch (IOException e1) { System.out.println(e1); } finally { sock = null; } } } catch (IOException e) { } }
// Close socket and IO streams, change appearance/functionality of some components private void closeAll() throws IOException { displayArea.append("\nConnection closing"); output.close(); input.close(); connection.close(); // We are no longer connected connection = null; // Change components serverField.setEditable(true); connectButton.setLabel("Connect to server above"); enterField.setEnabled(false); }
private void go() { try { // Read as long as there is input byte[] buffer = new byte[ciphertextBlockSize]; boolean disconnectMsgSent = false; while (connection != null && !disconnectMsgSent && input.read(buffer) != -1) { // Decipher the bytes read in byte[] plaintext = Ciphers.RSADecipherWSalt(buffer, decipherExp, modulus); if (plaintext.length == 1 && plaintext[0] == 0) { disconnectMsgSent = true; closeAll(); } else { // convert to a string and display message = new String(plaintext); displayArea.append("\n" + message); } } } catch (IOException ioe) { // Server disconnected-we can reconnect if we wish } }
// -------------------------------------------------- public void send() { os.println(commandArea.getText()); }
public babylonServerWindow(babylonServer parent, String Name) { super(Name); server = parent; myLayout = new GridBagLayout(); setLayout(myLayout); p = new Panel(); p.setLayout(myLayout); listening = new Label(server.strings.get(thisClass, "listenport") + " " + server.port); p.add( listening, new babylonConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); logChat = new Checkbox(server.strings.get(thisClass, "logchats"), server.logChats); logChat.addItemListener(this); p.add( logChat, new babylonConstraints( 1, 0, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); userList = new List(4, false); userList.addItemListener(this); p.add( userList, new babylonConstraints( 0, 1, 1, 5, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0, 0, 5, 0), 0, 0)); userAdmin = new Button(server.strings.get(thisClass, "usermanagement")); userAdmin.addActionListener(this); p.add( userAdmin, new babylonConstraints( 1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); console = new Button(server.strings.get(thisClass, "adminclient")); console.addActionListener(this); p.add( console, new babylonConstraints( 1, 2, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); disconnect = new Button(server.strings.get(thisClass, "disconnectuser")); disconnect.setEnabled(false); disconnect.addActionListener(this); p.add( disconnect, new babylonConstraints( 1, 3, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); disconnectAll = new Button(server.strings.get(thisClass, "disconnectall")); disconnectAll.setEnabled(false); disconnectAll.addActionListener(this); p.add( disconnectAll, new babylonConstraints( 1, 4, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); shutdown = new Button(server.strings.get(thisClass, "shutdown")); shutdown.addActionListener(this); p.add( shutdown, new babylonConstraints( 1, 5, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0)); stats = new TextField( server.strings.get(thisClass, "connectionscurrent") + " 0 " + server.strings.get(thisClass, "connectionspeak") + " 0 " + server.strings.get(thisClass, "connectionstotal") + " 0", 40); stats.setEditable(false); p.add( stats, new babylonConstraints( 0, 7, 2, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); logWindow = new TextArea( server.strings.get(thisClass, "activitylog") + "\n", 10, 40, TextArea.SCROLLBARS_VERTICAL_ONLY); logWindow.setEditable(false); p.add( logWindow, new babylonConstraints( 0, 8, 2, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0, 0, 5, 0), 0, 0)); canvas = new babylonPictureCanvas(this); p.add( canvas, new babylonConstraints( 0, 9, 2, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); add( p, new babylonConstraints( 0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0)); try { URL url = new URL("file", "localhost", "babylonPic.jpg"); Image image = getToolkit().getImage(url); canvas.setimage(image); } catch (Exception e) { System.out.println(e); } try { URL iconUrl = new URL("file", "localhost", "babylonIcon.jpg"); ImageIcon icon = new ImageIcon(iconUrl); this.setIconImage(icon.getImage()); } catch (Exception e) { /* Not important */ } addWindowListener(this); setSize(600, 600); pack(); }
public void actionPerformed(ActionEvent e) { Object source = e.getSource(); // Client pressed enter in the message entry field-send it if (source == enterField) { // Get the message message = e.getActionCommand(); try { // Encipher the message if (message.length() > plaintextBlockSize) message = message.substring(0, plaintextBlockSize); byte[] ciphertext = Ciphers.RSAEncipherWSalt(message.getBytes(), BigIntegerMath.THREE, recipModulus, sr); // Send to the server output.write(ciphertext); output.flush(); // Display same message in client output area displayArea.append("\n" + message); enterField.setText(""); } catch (IOException ioe) { displayArea.append("\nError writing message"); } } else if (source == connectButton) { if (connection != null) { // Already connected-button press now means disconnect try { // Send final message of 0 byte[] lastMsg = new byte[1]; lastMsg[0] = 0; output.write(Ciphers.RSAEncipherWSalt(lastMsg, BigIntegerMath.THREE, recipModulus, sr)); output.flush(); // close connection and IO streams, change some components closeAll(); } catch (IOException ioe) { displayArea.append("\nError closing connection"); } } else { // Not connected-connect // Get name of server to connect to chatServer = serverField.getText(); displayArea.setText("Attempting connection to " + chatServer); try { // Set up the socket connection = new Socket(chatServer, 55555); displayArea.append("\nConnected to: " + connection.getInetAddress().getHostName()); // Set up the IO streams output = new DataOutputStream(connection.getOutputStream()); output.flush(); input = new DataInputStream(connection.getInputStream()); // Exchange public keys with the server-send yours, get theirs exchangeKeys(); // Change appearance/functionality of some components serverField.setEditable(false); connectButton.setLabel("Disconnect from server above"); enterField.setEnabled(true); // Set up a thread to listen for the connection listener = new Thread( new Runnable() { public void run() { go(); } }); listener.start(); } catch (IOException ioe) { displayArea.append("\nError connecting to " + chatServer); } } } }