请问怎样在服务器里面把不同客户端的运算结果放进一个stack里面呢?

nicole3life 2009-12-28 10:08:03
请问怎样把每次client发过去的x储存进一个stack 并在最后加起来呢??
希望哪位大侠帮忙给出代码
谢谢哦
【双手把50分奉上】
下面是代码

import java.io.*;
import java.net.*;
class SqrtServer {
final static int portSqrt = 1234; // any number > 1024
public static void main(String[] args) {
System.out.println("Server running...");
try {
ServerSocket servesock = new ServerSocket(portSqrt);
// for service requests on port portSqrt
while (true) {
// wait for a service request on port portSqrt
Socket socket = servesock.accept();
// start thread to service request
new Thread(new SquareRoot(socket)).start();
}
} catch (IOException e) {e.printStackTrace();}
}
}

class SquareRoot implements Runnable {

Socket socket;
SquareRoot(Socket s) {
socket = s;
}

public void run() {
try {
DataInputStream in =
new DataInputStream(socket.getInputStream());
DataOutputStream out =
new DataOutputStream(socket.getOutputStream());
int x = in.readInt(); // get number from client

// calculate square root
int i = 0;
while ((i+1)*(i+1)<= x) i++;
out.writeInt(i); // send square root
socket.close(); // close connection
} catch (IOException e) {}
}
}



import java.io.*;
import java.net.*;

class SqrtClient {

private final static int portSqrt = 1234;

public static void main(String[] args) {
int x = 0;
while (x < 10){
try {
Socket socket;
socket = new Socket(InetAddress.getLocalHost(),portSqrt);
DataInputStream in = new
DataInputStream(socket.getInputStream());
DataOutputStream out = new
DataOutputStream(socket.getOutputStream());
out.writeInt(x);
int n = in.readInt(); // wait for result from server
System.out.println("Integer square root of "+ x + " = " + n);
socket.close();
} catch (IOException e) {System.out.println(e);}
x = x + 1;
}
}
}

...全文
56 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicole3life 2010-01-01
  • 打赏
  • 举报
回复
不好意思 回晚了 但是在此谢谢cangyingzhijia 和 crazylaa
嘻嘻
大家新年快乐
crazylaa 2009-12-29
  • 打赏
  • 举报
回复
接收的开个static,接到一个+一个,随便加
hzhxxx 2009-12-28
  • 打赏
  • 举报
回复

看看这个:

下列描述了JNSP(java network service platform)服务的部署和功能,如有不明白之处,自己查看源代码,我无力和没有太多时
间回答太多的问题.源代码一起提供,按 GPL 协议维护。
如果查看后有技术问题探讨和建议的,欢迎致电致信联系.该程序已经发布于网络,http://code.google.com/p/java-nsp/

系统架构设计和实现有如下特点:
A. 采用 Accept-Connect 通讯模型,能统一管理系统中使用的所有 Socket 资源;
B. 系统支持通信和协议分离的实现原则,支持自定义协议解析模块,并把协议解析扩展到TCP连接上;
通信负责数据收发,协议负责数据鉴别,两者配合实现通信和协议的和谐工作;
C. 灵活支持业务处理功能重定义,分级支持慢业务和快业务的不同业务处理线程;
D. 丰富灵活的配置参数,能满足高扩展性;
E. 使用线性的而非嵌套的状态管理,配合业务处理和通信模型,能异步的管理所有的交互步骤;
F. 分布式服务设计和部署,实现动态(热拔插)的增加和较少业务服务器,减少乃至拒绝单点服务;
G. 已经支持TCP协议层上的二进制和文本协议
H. 目前源代码已经采用 GPL协议开源发布到: http://code.google.com/p/java-nsp/
苍蝇①号 2009-12-28
  • 打赏
  • 举报
回复
不知道楼主要怎么加起来,存我是给你存进去了。给我50/2分就行
import java.io.*;
import java.net.*;
import java.util.Stack;

class SqrtServer {
final static int portSqrt = 1234;
final static Stack<Integer> stack = new Stack<Integer>();
// any number > 1024
public static void main(String[] args) {
System.out.println("Server running...");
try {
ServerSocket servesock = new ServerSocket(portSqrt); // for service requests on port portSqrt
while (true) { // wait for a service request on port portSqrt
Socket socket = servesock.accept(); // start thread to service request
new Thread(new SquareRoot(socket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

class SquareRoot implements Runnable {
Socket socket;

SquareRoot(Socket s) {
socket = s;
}

public void run() {
try {
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket
.getOutputStream());
int x = in.readInt(); // get number from client calculate square root
SqrtServer.stack.push(x);
int i = 0;
while ((i + 1) * (i + 1) <= x)
i++;
out.writeInt(i); // send square root
socket.close(); // close connection
} catch (IOException e) {
}
}
}
三米 2009-12-28
  • 打赏
  • 举报
回复
快沉了,帮顶一下。

62,615

社区成员

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

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