展开全部
Client.java
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Client extends JFrame implements ActionListener{
private JTextField jtf=new JTextField();
private JTextArea jta=new JTextArea();
private DataOutputStream toServer;
private DataInputStream fromServer;
public static void main(String args[]){
new Client();
}
public Client(){
JPanel p=new JPanel();
p.setLayout(new BorderLayout());
p.add(new Label("Enter radius:"), BorderLayout.WEST);
p.add(jtf, BorderLayout.CENTER);
jtf.setHorizontalAlignment(JTextField.RIGHT);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(p, BorderLayout.NORTH);
getContentPane().add(jta, BorderLayout.CENTER);
jtf.addActionListener(this);
setTitle("Client");
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try{
Socket socket=new Socket("localHost", 8000);
fromServer=new DataInputStream(socket.getInputStream());
toServer =new DataOutputStream(socket.getOutputStream());
}
catch(IOException ex){
jta.append(ex.toString()+"\n");
}
}
public void actionPerformed(ActionEvent e){
String actionCommand=e.getActionCommand();
if(e.getSource() instanceof JTextField){
try{
double radius=Double.parseDouble(jtf.getText().trim());
toServer.writeDouble(radius);
toServer.flush();
double area=fromServer.readDouble();
jta.append("Radiu is"+ radius+"\n");
jta.append("Area recieved from the server is"+area+"\n");
}
catch(IOException ex){
System.err.println(ex);
}
}
}
}
Server.java
import java.net.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class Server extends JFrame{
private JTextArea jta=new JTextArea();
public static void main(String args[]){
new Server();
}
public Server(){
getContentPane().setLayout(new BorderLayout());
getContentPane().add(new JScrollPane(jta), BorderLayout.CENTER);
setTitle("Server");
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try{
ServerSocket serverSocket=new ServerSocket(80);
jta.append("Server started at "+ new Date()+"\n");
int clientNo=1;
while(true){
Socket socket=serverSocket.accept();
jta.append("Starting thread for client "+ clientNo+" at "+ new Date()+ "\n");
InetAddress inetAddress=socket.getInetAddress();
jta.append("Client " + clientNo +"'s host name is "+ inetAddress.getHostName()+"\n");
jta.append("Client "+ clientNo +"'s host IP Address is "+ inetAddress.getHostAddress()+"\n");
HandleAClient thread =new HandleAClient(socket, clientNo);
thread.start();
clientNo++;
}
}
catch(IOException ex){
System.err.println(ex);
}
}
class HandleAClient extends Thread{
private Socket socket;
private int clientNo;
public HandleAClient(Socket socket, int n){
this.socket=socket;
clientNo=n;
}
public void run(){
try{
DataInputStream inputFromClient=new DataInputStream(socket.getInputStream());
DataOutputStream outputToClient=new DataOutputStream(socket.getOutputStream());
while(true){
double s=inputFromClient.readDouble();
jta.append("Client "+ clientNo+" Say:"+s+"\n");
s=3.14*s*s;
outputToClient.writeDouble(s);
}
}
catch(IOException ex){
System.err.println(ex);
}
}
}
}
追问
能运行下,给个结果吗
本回答由提问者推荐
已赞过
已踩过<
你对这个回答的评价是?
评论
收起