2

少し問題があります。クライアントからサーバーなどに情報を送信することができました...しかし、telnetでもできるようにしたいです(それを開いて、telnet 127.0.0.1 4444に行くと言ってから、1のように入力します2 3 その後、クライアント経由で送信する場合と同じように、サーバーに表示されます.現時点では、このエラーが発生しています:

java.io.StreamCorruptedException: invalid stream header: 310D0A32
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at ConnectionHandler.run(server1.java:73)
at java.lang.Thread.run(Unknown Source)

私が何か間違ったことをしている場合はお知らせください:

これに対する私の主な目標は、ユーザー名、ID、および名前を入力して、非常に単純なチェックイン チェックアウト システムのように、それらを思い出すことができるようにすることです。いくつかの助けが本当に大好きです<3 :)

クライアント:

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class client1 {

public static void main(String[] args) {
    try {
// Create a connection to the server socket on the server application
        Socket socket = new Socket("localhost", 7777);

// Send a message to the client application
        ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
        //oos.writeObject("A B C");
        String data[]=new String[3];
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter details for the array");
        for(int x=0;x<3;x++){
            System.out.print("Enter word number"+(x+1)+":");
            data[x]=br.readLine();
        }
        oos.writeObject(data);
        System.out.println("Details sent to server...");
        oos.close();
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

サーバ:

import java.io.IOException;
import java.io.ObjectInputStream;
import java.lang.ClassNotFoundException;
import java.lang.Runnable;
import java.lang.Thread;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class server1
{
private ServerSocket server;
private int port = 4444;

public server1()
{
    try
    {
        server = new ServerSocket(port);
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }

}

public static void main(String[] args)
{
    server1 example = new server1();
    example.handleConnection();
}

public void handleConnection() 
{
    System.out.println("Waiting for client message got...");

// The server do a loop here to accept all connection initiated by the

// client application.
    while (true) 
    {
        try
        {
            Socket socket = server.accept();
            new ConnectionHandler(socket);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
  }
}

class ConnectionHandler implements Runnable 
{
private Socket socket;
public ConnectionHandler(Socket socket)
{
    this.socket = socket;
    Thread t = new Thread(this);
    t.start();
}
public void run()
{
    try
    {
// Read a message sent by client application
        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
        String message[] = (String[]) ois.readObject();
        //System.out.println("Message Received from client: " + message);
        //b(message);
                    printArray(message);    
        ois.close();
        socket.close();
        System.out.println("Waiting for client message is...");
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    } 
    catch (ClassNotFoundException e) 
    {
        e.printStackTrace();
    }
}
private void b(String message) {
     List<String> list = new ArrayList<String>();
        String[] arr = list.toArray(new String[0]);
        System.out.println("Array is " + Arrays.toString(arr));

}
    private void printArray(String[] arr){
       for(String s:arr){
          System.out.println(s);
        }
}
4

0 に答える 0