77范文网 - 专业文章范例文档资料分享平台

java2实用教程第4版答案(6)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

8.属于上机调试题目,解答略 四、编写程序

1. public class E {

public static void main(String args[]) { Cinema a=new Cinema(); a.zhang.start(); a.sun.start(); a.zhao.start(); } }

class TicketSeller //负责卖票的类。

{ int fiveNumber=3,tenNumber=0,twentyNumber=0; public synchronized void sellTicket(int receiveMoney) { if(receiveMoney==5)

{ fiveNumber=fiveNumber+1;

System.out.println(Thread.currentThread().getName()+

\给我5元钱,这是您的1张入场卷\

}

else if(receiveMoney==10) { while(fiveNumber<1)

{ try { System.out.println(Thread.currentThread().getName()+\靠边等\ wait();

System.out.println(Thread.currentThread().getName()+\结束等待\ }

catch(InterruptedException e) {} }

fiveNumber=fiveNumber-1; tenNumber=tenNumber+1;

System.out.println(Thread.currentThread().getName()+

\给我10元钱,找您5元,这是您的1张入场卷\

}

else if(receiveMoney==20) { while(fiveNumber<1||tenNumber<1)

{ try { System.out.println(Thread.currentThread().getName()+\靠边等\ wait();

System.out.println(Thread.currentThread().getName()+\结束等待\ }

catch(InterruptedException e) {} }

fiveNumber=fiveNumber-1; tenNumber=tenNumber-1;

twentyNumber=twentyNumber+1;

System.out.println(Thread.currentThread().getName()+

\给20元钱,找您一张5元和一张10元,这是您的1张入场卷\

} notifyAll(); } }

class Cinema implements Runnable { Thread zhang,sun,zhao; TicketSeller seller; Cinema()

{ zhang=new Thread(this); sun=new Thread(this); zhao=new Thread(this); zhang.setName(\张小有\ sun.setName(\孙大名\ zhao.setName(\赵中堂\ seller=new TicketSeller(); }

public void run()

{ if(Thread.currentThread()==zhang) { seller.sellTicket(20); }

else if(Thread.currentThread()==sun) { seller.sellTicket(10); }

else if(Thread.currentThread()==zhao) { seller.sellTicket(5); } } }

2. 参照本章例子6 3.参照本章例子9

习题十三(第13章)

一、问答题

1.一个URL对象通常包含最基本的三部分信息:协议、地址、资源。 2.URL对象调用InputStream openStream() 方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源信息读入到客户端。 3.客户端的套接字和服务器端的套接字通过输入、输出流互相连接后进行通信。 4.使用方法accept(),accept()会返回一个和客户端Socket对象相连接的Socket对象。accept方法会堵塞线程的继续执行,直到接收到客户的呼叫。。 5.域名/IP。 四、编程题 1. (1)客户端

import java.net.*; import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Client

{ public static void main(String args[]) { new ComputerClient(); } }

class ComputerClient extends Frame implements Runnable,ActionListener { Button connection,send; TextField inputText,showResult; Socket socket=null; DataInputStream in=null; DataOutputStream out=null; Thread thread; ComputerClient() { socket=new Socket(); setLayout(new FlowLayout()); Box box=Box.createVerticalBox(); connection=new Button(\连接服务器\ send=new Button(\发送\ send.setEnabled(false); inputText=new TextField(12); showResult=new TextField(12); box.add(connection);

box.add(new Label(\输入三角形三边的长度,用逗号或空格分隔:\

box.add(inputText); box.add(send);

box.add(new Label(\收到的结果:\ box.add(showResult);

connection.addActionListener(this); send.addActionListener(this); thread=new Thread(this); add(box);

setBounds(10,30,300,400); setVisible(true); validate();

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e) { System.exit(0); } }); }

public void actionPerformed(ActionEvent e) { if(e.getSource()==connection)

{ try //请求和服务器建立套接字连接: { if(socket.isConnected()) {} else

{ InetAddress address=InetAddress.getByName(\

InetSocketAddress socketAddress=new InetSocketAddress(address,4331); socket.connect(socketAddress);

in =new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); send.setEnabled(true); thread.start(); } }

catch (IOException ee){} }

if(e.getSource()==send)

{ String s=inputText.getText(); if(s!=null)

{ try { out.writeUTF(s); }

catch(IOException e1){} } } }

public void run() { String s=null; while(true)

{ try{ s=in.readUTF(); showResult.setText(s); }

catch(IOException e)

{ showResult.setText(\与服务器已断开\ break; } } } }

(2)服务器端

import java.io.*; import java.net.*; import java.util.*; public class Server

{ public static void main(String args[]) { ServerSocket server=null; Server_thread thread; Socket you=null; while(true)

{ try{ server=new ServerSocket(4331); }

catch(IOException e1)

{ System.out.println(\正在监听\对象不能重复创建

}

try{ System.out.println(\等待客户呼叫\ you=server.accept();

System.out.println(\客户的地址:\ }

catch (IOException e)

{ System.out.println(\正在等待客户\ } if(you!=null)

{ new Server_thread(you).start(); //为每个客户启动一个专门的线程

} } } }

class Server_thread extends Thread

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java2实用教程第4版答案(6)在线全文阅读。

java2实用教程第4版答案(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/396732.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: