Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在客户端向服务器发送对象时抛出错误,IDE中没有错误/警告_Java_Sockets_Serialization - Fatal编程技术网

Java在客户端向服务器发送对象时抛出错误,IDE中没有错误/警告

Java在客户端向服务器发送对象时抛出错误,IDE中没有错误/警告,java,sockets,serialization,Java,Sockets,Serialization,有人请帮忙,我有一个客户端和一个服务器,我正在从客户端发送一个对象,代码中说发送数据包: class Data implements Serializable { /** * */ // private static final long serialVersionUID = 1L; String a = "ok baby"; String b = "hi there"; }

有人请帮忙,我有一个客户端和一个服务器,我正在从客户端发送一个对象,代码中说发送数据包:

   class Data implements Serializable {
        /**
         * 
         */
        // private static final long serialVersionUID = 1L;

        String a = "ok baby";
        String b = "hi there";
    }

    public void Connect(String[] args) throws IOException {

        Socket kkSocket = null;
        PrintWriter out = null;
        ObjectOutputStream oos = null;
        BufferedReader in = null;

        try {
            kkSocket = new Socket("192.168.0.5", 1337);
            out = new PrintWriter(kkSocket.getOutputStream(), true);
            oos = new ObjectOutputStream(kkSocket.getOutputStream());
            in = new BufferedReader(new InputStreamReader(
                    kkSocket.getInputStream()));
        } catch (UnknownHostException e) {
            System.err.println("Don't know about hostname, network problem.");
            System.exit(1);
        } catch (IOException e) {
            System.err.println("Couldn't connect to server.");
            System.exit(1);
        }

        BufferedReader stdIn = new BufferedReader(new InputStreamReader(
                System.in));
        String fromServer;
        String fromUser;

        // SEND PACKET OF DATA
        oos.writeObject(new Data());
        oos.flush();
        // SEND PACKET OF DATA
这段代码根本不传输,当它试图发送时会弹出这个错误,有人介意帮我吗

java.io.NotSerializableException: java.lang.Thread
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.access$300(Unknown Source)
    at java.io.ObjectOutputStream$PutFieldImpl.writeFields(Unknown Source)
    at java.io.ObjectOutputStream.writeFields(Unknown Source)
    at java.awt.Container.writeObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.access$300(Unknown Source)
    at java.io.ObjectOutputStream$PutFieldImpl.writeFields(Unknown Source)
    at java.io.ObjectOutputStream.writeFields(Unknown Source)
    at java.awt.Container.writeObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.access$300(Unknown Source)
    at java.io.ObjectOutputStream$PutFieldImpl.writeFields(Unknown Source)
    at java.io.ObjectOutputStream.writeFields(Unknown Source)
    at java.awt.Container.writeObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeArray(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.access$300(Unknown Source)
    at java.io.ObjectOutputStream$PutFieldImpl.writeFields(Unknown Source)
    at java.io.ObjectOutputStream.writeFields(Unknown Source)
    at java.awt.Container.writeObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at citadelRPG.Main.Connect(Main.java:124)
    at citadelRPG.Main.<init>(Main.java:158)
    at citadelRPG.Main$2.run(Main.java:269)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at citadelRPG.Main$2.run(Main.java:277)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
java.io.NotSerializableException:java.lang.Thread
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.defaultWriteFields(未知源)
位于java.io.ObjectOutputStream.writeSerialData(未知源)
位于java.io.ObjectOutputStream.writeOrdinaryObject(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.writeArray(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.access的$300(未知源)
位于java.io.ObjectOutputStream$PutFieldImpl.writeFields(未知源)
位于java.io.ObjectOutputStream.writeFields(未知源)
位于java.awt.Container.writeObject(未知源)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于java.io.ObjectStreamClass.invokeWriteObject(未知源)
位于java.io.ObjectOutputStream.writeSerialData(未知源)
位于java.io.ObjectOutputStream.writeOrdinaryObject(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.writeArray(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.access的$300(未知源)
位于java.io.ObjectOutputStream$PutFieldImpl.writeFields(未知源)
位于java.io.ObjectOutputStream.writeFields(未知源)
位于java.awt.Container.writeObject(未知源)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于java.io.ObjectStreamClass.invokeWriteObject(未知源)
位于java.io.ObjectOutputStream.writeSerialData(未知源)
位于java.io.ObjectOutputStream.writeOrdinaryObject(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.writeArray(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.access的$300(未知源)
位于java.io.ObjectOutputStream$PutFieldImpl.writeFields(未知源)
位于java.io.ObjectOutputStream.writeFields(未知源)
位于java.awt.Container.writeObject(未知源)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于java.io.ObjectStreamClass.invokeWriteObject(未知源)
位于java.io.ObjectOutputStream.writeSerialData(未知源)
位于java.io.ObjectOutputStream.writeOrdinaryObject(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.writeArray(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.access的$300(未知源)
位于java.io.ObjectOutputStream$PutFieldImpl.writeFields(未知源)
位于java.io.ObjectOutputStream.writeFields(未知源)
位于java.awt.Container.writeObject(未知源)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于java.io.ObjectStreamClass.invokeWriteObject(未知源)
位于java.io.ObjectOutputStream.writeSerialData(未知源)
位于java.io.ObjectOutputStream.writeOrdinaryObject(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.defaultWriteFields(未知源)
位于java.io.ObjectOutputStream.writeSerialData(未知源)
位于java.io.ObjectOutputStream.writeOrdinaryObject(未知源)
位于java.io.ObjectOutputStream.WriteObject 0(未知源)
位于java.io.ObjectOutputStream.writeObject(未知源)
位于citadelRPG.Main.Connect(Main.java:124)
在citadelRPG.Main.(Main.java:158)
在citadelRPG.Main$2.run(Main.java:269)
在java.awt.event.InvocationEvent.dispatch(未知源)处
位于java.awt.EventQueue.dispatchEventImpl(未知源)
位于java.awt.EventQueue.access$000(未知源)
在java.awt.EventQueue$3.run处(未知源)
在java.awt.EventQueue$3.run处(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(未知源)
位于java.awt.EventQueue.dispatchEvent(未知源)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(未知源)
位于java.awt.EventDispatchThread.pumpEventsForFilter(未知源)
位于java.awt.EventDispatchThread.pumpEventsForHierarchy(未知源)
位于java.awt.EventDispatchThread.pumpEvents(未知源)
位于java.awt.EventDispatchThread.pumpEvents(未知源)
位于java.awt.EventDispatchThread.run(未知源)
线程“AWT-EventQueue-0”java.lang.NullPointerException中出现异常
在citadelRPG.Main$2.run(Main.java:277)
在java.awt.event.InvocationEvent.dispatch(未知源)处
位于java.awt.EventQueue.dispatchEventImpl(未知源)
位于java.awt.EventQueue.access$000(未知源)
在爪哇
public class Outer extends Thread {
    class Data implements Serializable {
        String a = "ok baby";
        String b = "hi there";
    }

    ...
}
public class Outer extends Thread
    ...
}

class Data implements Serializable {
     String a = "ok baby";
     String b = "hi there";
     Outer outer;
}