Rambler's Top100

А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я

Все примеры | Примеры по пакетам

Простейший сервер приложений


// Простейший сервер приложений
// Сервер принимает от клиента вектор, модифицирует его и отправляет обратно.


import java.net.*;
import java.io.*;
import java.util.*;

public class simplestAppServer {
       static Vector vector =new Vector();
       static Vector vectortemp =new Vector();
       static String str="";
static void modifyVector(Vector vect){
    String temp="";
    vector.clear();
    for(int i=0;i< vect.size();i++){
        temp=vect.get(i).toString()+" "+i;
        vector.add(temp);
    }

}
public static void main(String [] args) throws ClassNotFoundException {

ServerSocket server = null;
Socket client;
ObjectOutputStream outputStream = null;
ObjectInputStream inputStream = null;
int portnumber = 1213;

  // Создание серверного сокета
        try {
            server = new ServerSocket(portnumber);
        } catch (IOException ie) {
            System.out.println("Cannot open socket." + ie);
            System.exit(1);
        }
  System.out.println("ServerSocket is created " + server);
        while(true) {
                    Vector vect =new Vector();
            try {
   //Прослушивание соединения и прием данных.
                System.out.println("Waiting for connect request...");
                client = server.accept();

                System.out.println("Connect request is accepted...");
  String clientHost = client.getInetAddress().getHostAddress();
  int clientPort = client.getPort();
  System.out.println("Client host = " + clientHost + " Client port = " + clientPort);

  //Запись данных в поток вывода
  outputStream = new ObjectOutputStream(client.getOutputStream());
  outputStream.writeObject(vector);
        //Чтение данных от клиента
        InputStream clientIn = client.getInputStream();
        System.out.println("Клиент " );
        inputStream = new ObjectInputStream(client.getInputStream());
            Object obj = null;

   if((obj = inputStream.readObject()) != null) {
            if (obj instanceof Vector) {

                    System.out.println("Получен ветор "+((Vector)obj));
               //Чтение объекта из входного потока и перевод его в вектор
               vectortemp=(Vector)obj;
           //Обработка вектора
               modifyVector(vectortemp);
             }
           }

            inputStream.close();
            outputStream.close();

  

            } catch (IOException ie) {
            }
        }
    }
}

//Клиент для работы с простейшим сервером приложений

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.AbstractButton;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;


public class simplestAppClient {
     static JButton jb=new JButton("Новый элемент");
     //Вектор которым обмениваются клиент и сервер
     static Vector vect1 =new Vector();
     static JEditorPane je=new JEditorPane();
public static class MyActionListener implements ActionListener {

public void actionPerformed(ActionEvent evt) {
        jb = (JButton)evt.getSource();
           
       Socket client = null;
       ObjectOutputStream outputStream = null;
       ObjectInputStream inputStream = null;
        int portnumber = 1213;

  for (int i=0; i < 13; i++) {
    try {
         
        try {     
             // Создание клиентского сокета
                client = new Socket(InetAddress.getLocalHost(), portnumber);
                       
             } catch (IOException ex) {

            }
         System.out.println("Клиентский сокет создан " + client);

 // Создание выходного потока для клиентского сокета
 OutputStream clientOut = client.getOutputStream();
              
  //Создание входного потока для клиентского сокета
  InputStream clientIn = client.getInputStream();

 outputStream = new ObjectOutputStream(client.getOutputStream());
//Добавление нового объекта к массиву
      if(!vect1.contains(je.getText())){
                     vect1.add(je.getText());
      }
 //Запись объекта на сервер
   outputStream.writeObject(vect1);

           System.out.println("!!!!!!client ");
//Чтение объекта от сервера
    inputStream = new ObjectInputStream(client.getInputStream());
    Object obj = null;
    try {
                    if ((obj = inputStream.readObject()) != null) {
                        outputStream.close();
       if (obj instanceof Vector) {
                System.out.println("От сервера: " + ((Vector) obj));

                  }
              }
                } catch (ClassNotFoundException ex) {
                   
                }     

                client.close();

            } catch (IOException ie) {
                System.out.println("I/O error " + ie);
            }
        }
        }
    }

    public static void main(String[] args) {
        Box box = new Box(BoxLayout.X_AXIS);

    jb.addActionListener(new MyActionListener());

      JFrame jf=new JFrame();
           
      jf.setVisible(true);
      jf.setSize(533, 333);
      box = Box.createHorizontalBox();

      box.add(je);
      box.add(jb);

      jf.getContentPane().add(box);
      jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);

    }

}

04.02.2009

Rambler's Top100


Ассоциативные ссылки