上机实践10Java中的网络编程_第1页
上机实践10Java中的网络编程_第2页
上机实践10Java中的网络编程_第3页
上机实践10Java中的网络编程_第4页
上机实践10Java中的网络编程_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上机实践10 Java 中的网络编程实验1 读取服务器端文件1答案:【代码1】: url=new URL(name);【代码2】: url.getHost(); 【代码3】: url.getPort(); 【代码4】: url.getFile(); 【代码5】: url.openStream(); 2模板代码 ReadFile.javaimport java.awt.*;import java.awt.event.*;import .*;import java.io.*;public class ReadURLSource public static void main(String args

2、) new NetWin(); class NetWin extends Frame implements ActionListener,Runnable Button button; URL url; TextField text; TextArea area; byte b=new byte118; Thread thread; NetWin() text=new TextField(20); area=new TextArea(12,12); button=new Button(确定); button.addActionListener(this); thread=new Thread(

3、this); Panel p=new Panel(); p.add(new Label(输入网址:); p.add(text); p.add(button); add(area,BorderLayout.CENTER); add(p,BorderLayout.NORTH); setBounds(60,60,360,300); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public v

4、oid actionPerformed(ActionEvent e) if(!(thread.isAlive() thread=new Thread(this); try thread.start(); catch(Exception ee) text.setText(我正在读取+url); public void run() try int n=-1; area.setText(null); String name=text.getText().trim(); 【代码1】 /使用字符串name创建url对象 String hostName=【代码2】 /url调用getHost() int

5、urlPortNumber=【代码3】 /url调用getPort() String fileName=【代码4】 /url调用getFile() InputStream in=【代码5】 /url调用方法返回一个输入流 area.append(n主机:+hostName+端口:+urlPortNumber+包含的文件名字:+fileName); area.append(n文件的内容如下:); while(n=in.read(b)!=-1) String s=new String(b,0,n); area.append(s); catch(MalformedURLException e1) t

6、ext.setText(+e1); return; catch(IOException e1) text.setText(+e1); return; 实验2 使用套接字读取服务器端对象客户端模板:Client.java答案:【代码1】: new InetSocketAddress(address,4331);【代码2】: socket.connect(socketAddress); 【代码3】: socket.getInputStream() 【代码4】: socket.getOutputStream() 服务器端模板:Server.java答案:【代码1】: new ServerSocket

7、(4331);【代码2】: server.accept(); 【代码3】: socket.getOutputStream() 【代码4】: socket.getInputStream() 2模板代码 客户端模板:Client.javaimport .*;import java.io.*;import java.awt.*;import java.awt.event.*;class Client extends Frame implements Runnable,ActionListener Button connection; Socket socket=null; ObjectInputSt

8、ream in=null; ObjectOutputStream out=null; Thread thread; public Client() socket=new Socket(); connection=new Button(连接服务器,读取文本区对象); add(connection,BorderLayout.NORTH); connection.addActionListener(this); thread = new Thread(this); setBounds(100,100,360,310); setVisible(true); addWindowListener(new

9、WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void run() while(true) try TextArea text=(TextArea)in.readObject(); add(text,BorderLayout.CENTER); validate(); catch(Exception e) break; public void actionPerformed(ActionEvent e) if(e.getSource()=connection) try if(s

10、ocket.isConnected() else InetAddress address=InetAddress.getByName(127.0.0.1); InetSocketAddress socketAddress=【代码1】/创建端口为4331、地址为 /address的socketAddress 【代码2】 /socket建立和socketAddress的连接呼叫。 in =new ObjectInputStream(【代码3】); /socket返回输入流 out = new ObjectOutputStream(【代码4】); /socket返回输出流 thread.start(

11、); catch (Exception ee) public static void main(String args) Client win=new Client(); 服务器端模板:Server.javaimport java.io.*;import .*;import java.util.*;import java.awt.*;public class Server public static void main(String args) ServerSocket server=null; ServerThread thread; Socket you=null; while(true)

12、 try server=【代码1】/创建在端口4331上负责监听的 ServerSocket对象 catch(IOException e1) System.out.println(正在监听); try you=【代码2】 / server返回和客户端相连接的Socket对象 System.out.println(客户的地址:+you.getInetAddress(); catch (IOException e) System.out.println(正在等待客户); if(you!=null) new ServerThread(you).start(); else continue; clas

13、s ServerThread extends Thread Socket socket; ObjectInputStream in=null; ObjectOutputStream out=null; String s=null; ServerThread(Socket t) socket=t; try out=new ObjectOutputStream(【代码3】); /socket返回输出流。 in=new ObjectInputStream(【代码4】); /socket返回输入流。 catch (IOException e) public void run() TextArea te

14、xt=new TextArea(你好,我是服务器,12,12); try out.writeObject(text); catch (IOException e) System.out.println(客户离开); 实验3 基于UDP的图像传输客户端模板:Client.java答案:【代码1】: new DatagramPacket(b,b.length,address,1234);【代码2】: new DatagramSocket(); 【代码3】: mailSend.send(data); 【代码4】: mailReceive=new DatagramSocket(5678); 服务器端模

15、板:Server.java答案:【代码1】: new DatagramSocket(1234);【代码2】: pack.getAddress(); 【代码3】: new DatagramPacket(b,n,address,5678);【代码4】: new DatagramSocket();【代码5】: mailSend.send(data); 【代码6】: new DatagramPacket(end,end.length,address,5678);【代码7】: new DatagramSocket();【代码8】: mailSend.send(data); 2模板代码 客户端模板:Cli

16、ent.javaimport .*;import java.awt.*; import java.awt.event.*;import java.io.*;class ImageCanvas extends Canvas Image image=null; public ImageCanvas() setSize(200,200); public void paint(Graphics g) if(image!=null) g.drawImage(image,0,0,this); public void setImage(Image image) this.image=image; class

17、 Client extends Frame implements Runnable,ActionListener Button b=new Button(获取图像); ImageCanvas canvas; Client() super(I am a client); setSize(320,200); setVisible(true); b.addActionListener(this); add(b,BorderLayout.NORTH); canvas=new ImageCanvas(); add(canvas,BorderLayout.CENTER); Thread thread=ne

18、w Thread(this); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); thread.start(); public void actionPerformed(ActionEvent event) byte b=请发图像.trim().getBytes(); try InetAddress address=InetAddress.getByName(127.0.0.1); DatagramPacket data=【代

19、码1】 /创建数据包,该数据包的目标地址和端口分别是 /address和1234,其中的数据为数组b中的全部字节。 DatagramSocket mailSend=【代码2】 /创建负责发送数据的DatagramSocket对象。 【代码3】 / mailSend发送数据data。 catch(Exception e) public void run() DatagramPacket pack=null; DatagramSocket mailReceive=null; byte b=new byte8192; ByteArrayOutputStream out=new ByteArrayOu

20、tputStream(); try pack=new DatagramPacket(b,b.length); 【代码4】 /创建在端口5678负责收取数据包的DatagramSocket对象。 catch(Exception e) try while(true) mailReceive.receive(pack); String message=new String(pack.getData(),0,pack.getLength(); if(message.startsWith(end) break; out.write(pack.getData(),0,pack.getLength(); b

21、yte imagebyte=out.toByteArray(); out.close(); Toolkit tool=getToolkit(); Image image=tool.createImage(imagebyte); canvas.setImage(image); canvas.repaint(); validate(); catch(IOException e) public static void main(String args) new Client(); 服务器端模板:Server.javaimport .*;import java.io.*;public class Se

22、rver public static void main(String args) DatagramPacket pack=null; DatagramSocket mailReceive=null; ServerThread thread; byte b=new byte8192; InetAddress address=null; pack=new DatagramPacket(b,b.length); while(true) try mailReceive=【代码1】/创建在端口1234负责收取数据包的 /DatagramSocket对象。 catch(IOException e1) System.out.println(正在等待); try mailReceive.receive(pack); address=【代码2】 /pack返回InetAddress对象。 System.out.println(客户的地址:+address); catch (IOExceptio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论