怎么调用socket中run()的一个值

yanglu252 2010-03-29 07:47:04
我想在另外一个类中调用socket的子函数run()中一个变量的值。
这个怎么弄啊?
...全文
147 18 打赏 收藏 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharke118 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yanglu252 的回复:]
引用 10 楼 sharke118 的回复:
在writeUTF过后要调用 output.flush() 才能把字符串写进流里面 你看看 你的客户端是不是调用了这个函数 如果都对了的话 应该是有值的 但是listMsg 是String 类型的 只能存一条数据 你如果想把服务器收到的消息都存起来 就用 ……
我已经把output.writeUTF("Recive Second: " + list……
[/Quote]

你在本类里面调用有值没有喃?
yanglu252 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sharke118 的回复:]
在writeUTF过后要调用 output.flush() 才能把字符串写进流里面 你看看 你的客户端是不是调用了这个函数 如果都对了的话 应该是有值的 但是listMsg 是String 类型的 只能存一条数据 你如果想把服务器收到的消息都存起来 就用 ……
[/Quote] 我已经把output.writeUTF("Recive Second: " + listMsg + " \r\n Thx...");
注释掉了 我打印了一下,是有值的,就是不能把void run()中listMsg的值调出来。 我是要在另外一个类文件中调用listMsg的值。
sharke118 2010-03-30
  • 打赏
  • 举报
回复
output.writeUTF("Recive Second: " + listMsg + " \r\n Thx...");
在writeUTF过后要调用 output.flush() 才能把字符串写进流里面 你看看 你的客户端是不是调用了这个函数 如果都对了的话 listMsg 应该是有值的 但是listMsg 是String 类型的 只能存一条数据 你如果想把服务器收到的消息都存起来 就用 ArrayList<String>listMsg 这个吧
yanglu252 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 sharke118 的回复:]
引用 5 楼 sharke118 的回复:
创建一个全局变量 假设为var,在对var创建其相关的 get 和 set 方法 即:
getvar(){ retrun var; } setvar(var2){ this.var = var2; }
在你说的线程里面将你想调用的变量赋值给 setvar()函数,假设你想要调用的变量是var2 那么可以这样 setvar(var2),当你在另外一个……
[/Quote]
先谢谢了 我设的是public static。
sharke118 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sharke118 的回复:]
创建一个全局变量 假设为var,在对var创建其相关的 get 和 set 方法 即:
getvar(){ retrun var; } setvar(var2){ this.var = var2; }
在你说的线程里面将你想调用的变量赋值给 setvar()函数,假设你想要调用的变量是var2 那么可以这样 setvar(var2),当你在另外一个类里面想调用var2的值的时候,直接掉用ge……
[/Quote]

把上面那个var 全局变量设成 static 变量 试试
yanglu252 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sharke118 的回复:]
本类调用都有值 那就是你类间调用的问题嘛 本类有这个值 其他类调用这个值不成功 只能说是 类间调用出了问题赛
那怎么解决呢?其实就是在SSocket类里面调用有值 在该类的main里面调用没有值。
yanglu252 2010-03-30
  • 打赏
  • 举报
回复
那怎么解决呢?其实就是在SSocket类里面调用有值
sharke118 2010-03-30
  • 打赏
  • 举报
回复
本类调用都有值 那就是你类间调用的问题嘛 本类有这个值 其他类调用这个值不成功 只能说是 类间调用出了问题赛
yanglu252 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sharke118 的回复:]
引用 11 楼 yanglu252 的回复:
引用 10 楼 sharke118 的回复:
在writeUTF过后要调用 output.flush() 才能把字符串写进流里面 你看看 你的客户端是不是调用了这个函数 如果都对了的话 应该是有值的 但是listMsg 是String 类型的 只能存一条数据 你如果想把服务器收到的消息都存起来 就用 ……
我已经把output.writeUTF(……
[/Quote] 有的啊
yanglu252 2010-03-29
  • 打赏
  • 举报
回复
我要调用String listMsg 的值。第二个String listMsg 可以不要的。
yanglu252 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sharke118 的回复:]
你打印下线程里面的值看看 看是否有值 可以的话 帖代码看看
[/Quote]
package certification;

import java.io.DataInputStream;
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();
}
}
}
}
sharke118 2010-03-29
  • 打赏
  • 举报
回复
你打印下线程里面的值看看 看是否有值 可以的话 帖代码看看
yanglu252 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sharke118 的回复:]
创建一个全局变量 假设为var,在对var创建其相关的 get 和 set 方法 即:
getvar(){ retrun var; } setvar(var2){ this.var = var2; }
在你说的线程里面将你想调用的变量赋值给 setvar()函数,假设你想要调用的变量是var2 那么可以这样 setvar(var2),当你在另外一个类里面想调用var2的值的时候,直接掉用ge……
[/Quote]
这个方法是可以调用,只是为什么每次调用的变量的值还是null,不是线程里面的值呢?是不是线程结束了变量就恢复成null了?
sharke118 2010-03-29
  • 打赏
  • 举报
回复
创建一个全局变量 假设为var,在对var创建其相关的 get 和 set 方法 即:

getvar(){
retrun var;
}

setvar(var2){
this.var = var2;

}

在你说的线程里面将你想调用的变量赋值给 setvar()函数,假设你想要调用的变量是var2 那么可以这样 setvar(var2),当你在另外一个类里面想调用var2的值的时候,直接掉用getvar()这个方法就可以了
  • 打赏
  • 举报
回复
还是没看明白
yanglu252 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 config_man 的回复:]
子函数?


创建一个javabean,将函数中的变量用的属性代替。这样在另一个类中就可以访问了。
[/Quote]
javabean?没用过 是不是没明白我的意思啊 主要是变量怎么在另外一个类中调用?而这个变量是在线程中!!!
config_man 2010-03-29
  • 打赏
  • 举报
回复
子函数?


创建一个javabean,将函数中的变量用javabean的属性代替。这样在另一个类中就可以访问了。
  • 打赏
  • 举报
回复
没明白你在问什么!
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧