我想在另外一个类中调用socket的子函数run()中一个变量的值。
这个怎么弄啊?
这个怎么弄啊?
解决方案 »
- xml和数据库,该如何选择~
- 魔术棒算法的边缘提取与记录
- JDBC连接异MySQL特慢,需要近半分钟,而连接本地半秒不到就连上了,偶已没有办法了。
- Java里面的字符串可以不可以加一个前缀可以避免被转义的?
- 告急!! 有谁知道如何将JAVA所编的应用程序框架置于Windows的最顶上!!
- 用==号就是不行,而我用EQUALS就可以,为什么?
- 感谢大家一直以来无私的帮助,散分300(第一贴),请进
- 我JBUILDER编译的APPLET ,生成CLASS后,放在WEB时,竟然是一个红色的“X”,这是什么问题 ?
- 學習Java
- Float.NaN 和Double.NaN指的是什么,有什么作用?
- 如何获得成对的数据,并打印?
- String类中的indexOf方法为什么不采用KPM算法进行字符串的匹配查找啊?
创建一个javabean,将函数中的变量用javabean的属性代替。这样在另一个类中就可以访问了。
[align=center]
getvar(){
retrun var;
}setvar(var2){
this.var = var2;} [/align]
在你说的线程里面将你想调用的变量赋值给 setvar()函数,假设你想要调用的变量是var2 那么可以这样 setvar(var2),当你在另外一个类里面想调用var2的值的时候,直接掉用getvar()这个方法就可以了
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) {
Server manager = new Server();
manager.doListen();
}
public void doListen() {
ServerSocket server;
try {
server = new ServerSocket(9991);
while (true) {
Socket client = server.accept();
new Thread(new SSocket(client)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
//服务器进程
class SSocket implements Runnable {
Socket client;
public SSocket(Socket client) {
this.client = client;
}
public void run() {
DataInputStream input;
DataOutputStream output;
try {
input = new DataInputStream(client.getInputStream());
output = new DataOutputStream(client.getOutputStream());
String listMsg = input.readUTF();
output.writeUTF("Recive: " + listMsg + " \r\n Thx...");
System.out.println("Recive: " + listMsg);
listMsg = input.readUTF();
output.writeUTF("Recive Second: " + listMsg + " \r\n Thx...");
System.out.println("Recive Second: " + listMsg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在writeUTF过后要调用 output.flush() 才能把字符串写进流里面 你看看 你的客户端是不是调用了这个函数 如果都对了的话 listMsg 应该是有值的 但是listMsg 是String 类型的 只能存一条数据 你如果想把服务器收到的消息都存起来 就用 ArrayList<String>listMsg 这个吧
注释掉了 我打印了一下,是有值的,就是不能把void run()中listMsg的值调出来。 我是要在另外一个类文件中调用listMsg的值。
本类调用都有值 那就是你类间调用的问题嘛 本类有这个值 其他类调用这个值不成功 只能说是 类间调用出了问题赛
那怎么解决呢?其实就是在SSocket类里面调用有值 在该类的main里面调用没有值。
把上面那个var 全局变量设成 static 变量 试试