import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Client extends JFrame implements Runnable,ActionListener
{
JButton connection,computer;
JTextField inputA,inputB,inputC;
JTextArea showResult;
Socket socket=null;
DataInputStream in=null;
DataOutputStream out=null;
Thread thread;
public Client()
{
socket=new Socket(); //待连接的套接字。
connection=new JButton("连接服务器");
computer=new JButton("求方程的根");
computer.setEnabled(false); //没有和服务器连接之前,该按钮不可用。
inputA=new JTextField("0",12);
inputB=new JTextField("0",12);
inputC=new JTextField("0",12);
Box boxV1=Box.createVerticalBox();
boxV1.add(new JLabel("输入2次项系数"));
boxV1.add(new JLabel("输入1次项系数"));
boxV1.add(new JLabel("输入常数项"));
Box boxV2=Box.createVerticalBox();
boxV2.add(inputA);
boxV2.add(inputB);
boxV2.add(inputC);
Box baseBox=Box.createHorizontalBox();
baseBox.add(boxV1);
baseBox.add(boxV2);
Container con=getContentPane();
con.setLayout(new FlowLayout());
showResult=new JTextArea(8,18);
con.add(connection);
con.add(baseBox);
con.add(computer);
con.add(new JScrollPane(showResult));
computer.addActionListener(this);
connection.addActionListener(this);
thread = new Thread(this);
setBounds(100,100,360,310);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void run()
{
while(true)
{
try{
double root1=in.readDouble(); //堵塞状态,除非读取到信息。
double root2=in.readDouble();
showResult.append("\n两个根:\n"+root1+"\n"+root2);
showResult.setCaretPosition((showResult.getText()).length());
}
catch(IOException e)
{
showResult.setText("与服务器已断开");
computer.setEnabled(false);
break;
}
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==connection)
{
try
{ //请求和服务器建立套接字连接:
if(socket.isConnected())
{
}
else
{
InetAddress address=InetAddress.getByName("127.0.0.1");
InetSocketAddress socketAddress=new InetSocketAddress(address,4331);
socket.connect(socketAddress);
in =new DataInputStream(socket.getInputStream());
out = new DataOutputStream(socket.getOutputStream());
computer.setEnabled(true);
thread.start();
}
}
catch (IOException ee){}
}
if(e.getSource()==computer)
{
try
{
double a=Double.parseDouble(inputA.getText()),
b=Double.parseDouble(inputB.getText()),
c=Double.parseDouble(inputC.getText());
double disk=b*b-4*a*c;
if(disk>=0)
{
out.writeDouble(a);
out.writeDouble(b);
out.writeDouble(c);
}
else
{
inputA.setText("此2次方程无实根");
}
}
catch(Exception ee)
{
inputA.setText("请输入数字字符");
}
}
}
public static void main(String args[])
{
Client win=new Client();
}
}
(2) 服务器端程序
import java.io.*;
import java.net.*;
import java.util.*;
public class Server
{
public static void main(String args[])
{
ServerSocket server=null;
ServerThread thread;
Socket you=null;
while(true)
{
try{
server=new ServerSocket(4331);
}
catch(IOException e1)
{
System.out.println("正在监听"); //ServerSocket对象不能重复创建。
}
try{
you=server.accept();
System.out.println("客户的地址:"+you.getInetAddress());
}
catch (IOException e)
{
System.out.println("正在等待客户");
}
if(you!=null)
{
new ServerThread(you).start(); //为每个客户启动一个专门的线程。
}
else
{
continue;
}
}
}
}
class ServerThread extends Thread
{
Socket socket;
DataOutputStream out=null;
DataInputStream in=null;
String s=null;
ServerThread(Socket t)
{
socket=t;
try {
in=new DataInputStream(socket.getInputStream());
out=new DataOutputStream(socket.getOutputStream());
}
catch (IOException e)
{}
}
public void run()
{
while(true)
{
double a=0,b=0,c=0,root1=0,root2=0;
try{
a=in.readDouble(); //堵塞状态,除非读取到信息。
b=in.readDouble();
c=in.readDouble();
double disk=b*b-4*a*c;
root1=(-b+Math.sqrt(disk))/(2*a);
root2=(-b-Math.sqrt(disk))/(2*a);
out.writeDouble(root1);
out.writeDouble(root2);
}
catch (IOException e)
{
System.out.println("客户离开");
break;
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
JAVA基础复习资料 (172个子文件)
java程序设计教程源代码.doc 1.06MB
电子教案--第10章.ppt 291KB
电子教案--第4章.ppt 205KB
电子教案--第7章.ppt 180KB
电子教案--第11章.ppt 179KB
电子教案--第12章.ppt 176KB
电子教案--第5章.ppt 164KB
电子教案第6章.ppt 149KB
电子教案--第3章.ppt 117KB
电子教案--第9章.ppt 116KB
电子教案--第1章.ppt 97KB
电子教案--第8章.ppt 86KB
电子教案--第2章.ppt 83KB
例11-6.txt 6KB
例12-12.txt 5KB
例9.txt 4KB
例11-7.txt 4KB
10例子14.txt 4KB
例12-6.txt 4KB
10例子34.txt 4KB
10例子28.txt 4KB
例12-5.txt 3KB
例子十.txt 3KB
例11-3.txt 3KB
10例子30.txt 3KB
例11-9.txt 3KB
10例子13.txt 3KB
10例子29.txt 3KB
例九.txt 2KB
10例子16.txt 2KB
例7-13.txt 2KB
例11.txt 2KB
例13.txt 2KB
例12-10.txt 2KB
例11-5.txt 2KB
10例子32.txt 2KB
10例子22.txt 2KB
10例子10.txt 2KB
10例子33.txt 2KB
例八.txt 2KB
例11-1.txt 2KB
10例子25.txt 2KB
10例子31.txt 2KB
例11-2.txt 2KB
10例子8.txt 2KB
5例子1.txt 2KB
10例子21.txt 2KB
5例子18.txt 2KB
10例子9.txt 2KB
10例子23.txt 2KB
例八.txt 2KB
例7-6.txt 1KB
例四.txt 1KB
例11-8.txt 1KB
10例子11.txt 1KB
5例子10.txt 1KB
例10.txt 1KB
例子十一.txt 1KB
10例子6.txt 1KB
例7-9.txt 1KB
例六.txt 1KB
10例子18.txt 1KB
10例子15.txt 1KB
SquarEquation.java.txt 1KB
10例子12.txt 1KB
例4-7.txt 1KB
例7-5.txt 1KB
例7-2.txt 1KB
例12-3.txt 1KB
5例子15.txt 1KB
10例子27.txt 1KB
10例子5.txt 1KB
例7-12.txt 1KB
10例子7.txt 1KB
10例子20.txt 1KB
5例子20.txt 1KB
例7-10.txt 1KB
例7-11.txt 1KB
例4-2.txt 1KB
例子十二.txt 1KB
例五.txt 1KB
10例子19.txt 1KB
例三.txt 1KB
10例子1.txt 1KB
10例子17.txt 1KB
例4-1.txt 1KB
10例子26.txt 1KB
例12-9.txt 1KB
例三.txt 1KB
5例子8.txt 1003B
10例子24.txt 995B
例四.txt 930B
例7-7.txt 905B
例一.txt 871B
例二.txt 867B
10例子3.txt 856B
例12.txt 850B
例7-8.txt 840B
例7-1.txt 819B
例12-11.txt 802B
共 172 条
- 1
- 2
a233786118
- 粉丝: 2
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 筷手引流工具.apk
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0