是这样的 我现在已经有一个client端 还有一个server端, 但是现在缺少一个中间的一个程序 是用来接收client 的数据 并且要运算方程 然后再把结果发到server端去, 这就应该是需要一个 ServerSocket+Socket 下面是我的代码clientimport java.io.*; import java.net.*; import java.util.*;class Q3Client { private final static int portSqrt = 1234; public static void main(String[] args) { while (true){ try { Socket socket; socket = new Socket(InetAddress.getLocalHost(),portSqrt); DataInputStream in = new DataInputStream(socket.getInputStream()); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); System.out.println(); Scanner in2 = new Scanner(System.in); int x = in2.nextInt(); out.writeInt(x); int n = in.readInt(); // wait for result from server System.out.println("x + "+x+" is = " + n); socket.close(); } catch (IOException e) {System.out.println(e);}
} } }serverimport java.io.*; import java.net.*; class Q3Server { final static int portSqrt = 1234; // any number > 1024 final static Stack<Integer> stack = new Stack<Integer>(); 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 b = 0; while (!SqrtServer.stack.isEmpty()) { int a = SqrtServer.stack.pop(); b = b + a; } out.writeInt(b); System.out.println(b); SqrtServer.stack.push(b); socket.close(); // close connection } catch (IOException e) { } } }
import java.net.*;
import java.util.*;class Q3Client { private final static int portSqrt = 1234; public static void main(String[] args) { while (true){
try {
Socket socket;
socket = new Socket(InetAddress.getLocalHost(),portSqrt);
DataInputStream in = new
DataInputStream(socket.getInputStream());
DataOutputStream out = new
DataOutputStream(socket.getOutputStream());
System.out.println();
Scanner in2 = new Scanner(System.in);
int x = in2.nextInt();
out.writeInt(x);
int n = in.readInt(); // wait for result from server
System.out.println("x + "+x+" is = " + n);
socket.close();
} catch (IOException e) {System.out.println(e);}
}
}
}serverimport java.io.*;
import java.net.*;
class Q3Server {
final static int portSqrt = 1234; // any number > 1024
final static Stack<Integer> stack = new Stack<Integer>(); 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 b = 0;
while (!SqrtServer.stack.isEmpty()) {
int a = SqrtServer.stack.pop();
b = b + a;
}
out.writeInt(b);
System.out.println(b);
SqrtServer.stack.push(b);
socket.close(); // close connection
} catch (IOException e) {
}
}
}
C->Mid->S
or
C<=>S
这个不难,太困了,没精力改你的代码。
唔
好心的大大帮个忙啊 5555555555555555555
client or server?
放哪就写在哪呗!
要不你就C-->S-->S(这两个S的端口不一样就行啦。)
我以前做过一个C-->S的IOCQ的毕业设计。
在S端里面来一个启动的线程,和一个接收数据的线程就可以啦。如在启动线程时,同时启动接收数据的线程。这样就可以用接收数据的线程不断地监听那个端口就可以啦!
大家圣诞快乐