//Server.java
//////////////////////////////////////
package javanet;
import java.net.*;
import java.io.*;
public class Server {
// create a server
private ServerSocket server;
private int clientCount=0;
/** Creates a new instance of Server */
public Server() {
try {
while(true){
server=new ServerSocket(8086);
System.out.println("正在等待客户的连接:");
Socket connectToClient=server.accept();
clientCount++;
System.out.println("客户"+clientCount+"已经连接上,服务器应答就绪:");
HandleAClient thread=new HandleAClient(connectToClient);
thread.start();
}
}
catch(BindException e){
System.out.println("端口被占用");
}
catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Server server=new Server();
}
}
///////////////////////////////////////////////////
//Client.java
package javanet;
import java.net.*;
import java.io.*;
public class Client {
private Socket contentToServer;
/** Creates a new instance of Client */
public Client() {
try {
System.out.println("请求服务器:");
contentToServer=new Socket("localhost",8086);
System.out.println("请求成功,正成发送数据:");
DataInputStream disFormServer=new DataInputStream(contentToServer.getInputStream());
DataOutputStream dosToServer=new DataOutputStream(contentToServer.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
double r=0;
while(r>=0){
r=Double.parseDouble(br.readLine());
dosToServer.writeDouble(r);
double area=disFormServer.readDouble();
System.out.println("From Server is "+area);
}
} catch (UnknownHostException ex) {
ex.printStackTrace();
}
catch(ConnectException e){
System.out.println("连接超时,找不到服务器。");
}
catch (IOException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args){
Client client=new Client();
}
}
/////////////////////////////////////////////////////////
//HandleAClient.java
package javanet;
import java.io.*;
import java.net.*;
class HandleAClient extends Thread{
private Socket connectToClient;
public HandleAClient(Socket socket){
connectToClient=socket;
}
public void run(){
try{
DataInputStream disFormClient=new DataInputStream(connectToClient.getInputStream());
DataOutputStream dosToClient=new DataOutputStream(connectToClient.getOutputStream());
InetAddress clientInetAddress=connectToClient.getInetAddress();
double r=0;
while(r>=0){
System.out.println("连接的客户机是:"+clientInetAddress.getHostName());
r=disFormClient.readDouble();
double area=Math.PI*r*r;
dosToClient.writeDouble(area);
Thread.sleep(100);
}
}
catch(IOException e){
System.err.println(e);
}
catch(InterruptedException e){
System.err.println(e);
}
}
}
运行之后,服务端总是端口被占,但能运行第一个客户,以后的就没什么反应了。
高手们给个答案。急~~~~~~
//////////////////////////////////////
package javanet;
import java.net.*;
import java.io.*;
public class Server {
// create a server
private ServerSocket server;
private int clientCount=0;
/** Creates a new instance of Server */
public Server() {
try {
while(true){
server=new ServerSocket(8086);
System.out.println("正在等待客户的连接:");
Socket connectToClient=server.accept();
clientCount++;
System.out.println("客户"+clientCount+"已经连接上,服务器应答就绪:");
HandleAClient thread=new HandleAClient(connectToClient);
thread.start();
}
}
catch(BindException e){
System.out.println("端口被占用");
}
catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Server server=new Server();
}
}
///////////////////////////////////////////////////
//Client.java
package javanet;
import java.net.*;
import java.io.*;
public class Client {
private Socket contentToServer;
/** Creates a new instance of Client */
public Client() {
try {
System.out.println("请求服务器:");
contentToServer=new Socket("localhost",8086);
System.out.println("请求成功,正成发送数据:");
DataInputStream disFormServer=new DataInputStream(contentToServer.getInputStream());
DataOutputStream dosToServer=new DataOutputStream(contentToServer.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
double r=0;
while(r>=0){
r=Double.parseDouble(br.readLine());
dosToServer.writeDouble(r);
double area=disFormServer.readDouble();
System.out.println("From Server is "+area);
}
} catch (UnknownHostException ex) {
ex.printStackTrace();
}
catch(ConnectException e){
System.out.println("连接超时,找不到服务器。");
}
catch (IOException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args){
Client client=new Client();
}
}
/////////////////////////////////////////////////////////
//HandleAClient.java
package javanet;
import java.io.*;
import java.net.*;
class HandleAClient extends Thread{
private Socket connectToClient;
public HandleAClient(Socket socket){
connectToClient=socket;
}
public void run(){
try{
DataInputStream disFormClient=new DataInputStream(connectToClient.getInputStream());
DataOutputStream dosToClient=new DataOutputStream(connectToClient.getOutputStream());
InetAddress clientInetAddress=connectToClient.getInetAddress();
double r=0;
while(r>=0){
System.out.println("连接的客户机是:"+clientInetAddress.getHostName());
r=disFormClient.readDouble();
double area=Math.PI*r*r;
dosToClient.writeDouble(area);
Thread.sleep(100);
}
}
catch(IOException e){
System.err.println(e);
}
catch(InterruptedException e){
System.err.println(e);
}
}
}
运行之后,服务端总是端口被占,但能运行第一个客户,以后的就没什么反应了。
高手们给个答案。急~~~~~~
解决方案 »
- 计算一个对象被引用的次数【智能代理模式】
- 求 精通netbeans 电子书
- JOptionPane类在不同的电脑分别变现为模式或无模式对话框,请教大家
- 一个文件调用另一个文件的问题
- 求一个例子???
- java.sql.SQLException :[Microsoft][ODBC SQL Server Driver]连接占线导致另一个hstmt
- 扩展了JFrame写了一个程序,是否可以改写成applet形式,要注意哪些问题?
- 谁知道哪有J2SE上自带的java web start的draw 4 app画图程序的源代码?必定加分重谢!
- 我想学java以前没有什么基础只会些请问各位一些问题现在有没有人在来回一下了谢谢
- 使用Quartz,如何动态的增加Job(运行时添加新的Job)
- 关于文件路径一问
- Java中如何返回一个字符串数组?&JTextField[][]问题!
而且while(true)还是写在构造函数里,算你狠~