java - 尝试与父类中的对象共享套接字

标签 java oop sockets applet

谁能启发我吗?我试图访问属于父类(主小程序类)的对象中的套接字。我希望我能让这对你来说更简单。有点拗口,但也许我的消息来源会进一步解释一下。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JApplet;
import javax.swing.JOptionPane;

class SocketsC {

    Socket clientsocket;
    static PrintWriter out;
    static BufferedReader in;

    public void SocketsC()  {

    }

    public void connectSock()   {

        try {

            clientsocket = new Socket( "localhost", 9900 );
            out = new PrintWriter(clientsocket.getOutputStream(), true);
            in = new BufferedReader(new InputStreamReader( clientsocket.getInputStream()));

        } catch (UnknownHostException e) {

            System.exit(1);

        } catch (IOException e) {

            System.exit(1);
        }
    }
}

class AccessSock    {

  AccessSock()  {

        // Here is where I am trying to access the socket from the mysocks object
      mysocks.out.println( "working" );  // This doesn't work...
  }

}

public class main extends JApplet {

    static SocketsC mysocks;

    public void init() {

      createApp();
    }

    public void createApp() {

        SocketsC mysocks = new SocketsC();
        AccessSock sendtext = new AccessSock();
    }
}

泰亚 -罗兰

最佳答案

由于您已将 mysocks 定义为静态,因此需要使用 className.variable 来访问它。

static SocketsC mysocks;

更改此:

mysocks.out.println( "working" );

main.mysocks.out.println( "working" );

这应该有效。因为您的类中没有名为 mysocks 的变量。它抛出错误。

关于java - 尝试与父类中的对象共享套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15059911/

相关文章:

c++ - 用于 C++ 的套接字 API 或库?

java - 多线程socket通信场景

java - 向套接字发送字符串命令

java - 将来自不同可观测值的多个排放分组为一个排放

java - itext7,html转pdf无法换行长英文单词或长数字

java - 在不阅读的情况下拆分文本文件

java - 在接口(interface)中添加默认和静态方法的原因

php - 带有 EAV 返回值的 Symfony2 表单动态选择字段

java - 在界面中使用抽象关键字

javascript - JQuery 不附加带有 JS 函数对象属性的 div 标签