当前位置:
文档之家› 上机实践10 JAVA 中的网络编程
上机实践10 JAVA 中的网络编程
服务器端模板: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.模板代码
客户端模板:Client.java
import .*; import java.awt.*; import java.awt.event.*; import java.io.*; class ImageCanvas extends Canvas { Image image=null;
{ ServerSocket server=null; ServerThread thread; Socket you=null; while(true) { 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; } }
import .*; import java.io.*; import java.awt.*; import java.awt.event.*; class Client extends Frame implements Runnable,ActionListener { Button connection;
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 urlPortNumber=【代码 3】 //url 调用 getPort() String fileName=【代码 4】 //url 调用 getFile() InputStream in=【代码 5】 //url 调用方法返回一个输入流 area.append("\n 主机:"+hostName+"端口:"+urlPortNumber+
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);
{ public void windowClosing(WindowEvent e) { System.exit(0); }
}); } public void actionPerformed(ActionEvent e) {
if(!(thread.isAlive())) thread=new Thread(this);
Socket socket=null; ObjectInputStream 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 WindowAdapter()
服务器端模板:Server.java
import java.io.*; import .*; import java.util.*; import java.awt.*; public class Server { public static void main(String args[])
2.模板代码
ReadFile.java
import java.awt.*; import java.awt.event.*; import .*; import java.io.*; public class ReadURLSource { public static void main(String args[])
} } class ServerThread extends Thread { Socket socket;
ObjectInputStream in=null; ObjectOutputStream out=null; String s=null; ServerThread(Socket t) { socket=t;
"包含的文件名字:"+fileName); area.append("\n 文件的内容如下:"); while((n=in.read(b))!=-1) { String s=new String(b,0,n);
area.append(s); } } catch(MalformedURLException e1) { text.setText(""+e1); return; } catch(IOException e1)
{ new NetWin(); } }
class NetWin extends Frame implements ActionListener,Runnable { Button button;
URL url; TextField text; TextArea area; byte b[]=new byte[118]; Thread thread; NetWin() { text=new TextField(20);
服务器端模板:Server.java 答案:
【代码 1】: new ServerSocket(4331); 【代码 2】: server.accept(); 【代码 3】: socket.getOutputStream() 【代码 4】: socket.getInputStream()
2.模板代码
客户端模板:Client.java
{ text.setText(""+e1); return;
} }
实验 2 使用套接字读取服务器端对象
客户端模板:Client.java 答案:
【代码 1】: new InetSocketAddress(address,4331); 【代码 2】: socket.connect(socketAddress); 【代码 3】: socket.getInputStream() 【代码 4】: socket.getOutputStream()
上机实践 10 Java 中的网络编程
实验 1 读取服务器端文件
1.答案:
【代码 1】: url=new URL(name); 【代码 2】: url.getHost(); 【代码 3】: url.getPort(); 【代码 4】: url.getFile(); 【代码 5】: url.openStream();
area=new TextArea(12,12); button=new Button("确定"); button.addActionListener(this); thread=new Thread(this); Panel p=new Panel(); p.add(new Label("输入网址:")); p.add(text); p.add(button);
public ImageCanvas() { setSize(200,200); } public void paint(Graphics g) { if(image!=null)
//address 的 socketAddress 【代码 2】 //socket 建立和 socketAddress 的连接呼叫。
in =new ObjectInputStream(【代码 3】); //socket 返回输入流 out = new ObjectOutputStream(【代码 4】); //socket 返回输出流 thread.start(); } } catch (Exception ee){} } } public static void main(String args[]) { Client win=new Client(); } }