




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验八 网络编程基础1实验目的(1)掌握Socket通信。(2)掌握UDP通信2实验内容实验题1 使用InetAddress类的方法获取/的主机的IP地址;获取本地机的名称和IP地址。具体代码如下:package demo;import .InetAddress ;public class InetAddressDemo public static void main(String args)throws Exception InetAddress locAdd = null ;locAdd = InetAddress.getLocalHost() ;/ 得到本机System.out.println(本机的IP地址: + locAdd.getHostAddress() ;System.out.println(本机的名称+locAdd.getHostName();运行结果如下:实验题2 使用URL类下载西北农林科技大学首页/,并统计下载得到网页文件的大小。具体代码如下:package demo;import .URL ;import .URLConnection ;import java.io.InputStream ;import java.util.Scanner ;public class URLConnectionDemo public static void main(String args) throws ExceptionURL url = new URL() ;URLConnection urlCon = url.openConnection() ;/ 建立连接InputStream input = url.openStream() ;Scanner scan = new Scanner(input) ;scan.useDelimiter(n) ;while(scan.hasNext()System.out.println(scan.next() ;System.out.println(内容大小: + urlCon.getContentLength() ;实验题3 利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。客户端向服务器端发送Time命令,服务器端接受到该字符串后将服务器端当前时间返回给客户端;客户端向服务器端发送Exit命令,服务器端向客户端返回“Bye”后退出。基本要求 编写完整程序;两人一组,一个作为服务器端,另一人作为客户端。服务器端和客户端都需要打印出接受到的消息和发出的命令。具体的程序代码如下:package demo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import .ServerSocket;import .Socket;import java.util.Calendar;public class server public static void main(String args) try ServerSocket server = new ServerSocket(9527);System.out.println(服务器启动完毕);Socket socket = server.accept();System.out.println(创建客户连接);InputStream input = socket.getInputStream();InputStreamReader isreader = new InputStreamReader(input);BufferedReader reader = new BufferedReader(isreader);while (true) String str = reader.readLine();if (str.equals(exit) System.out.println(Bye);break;if (str.equals(Time) String s = Calendar.getInstance().getTime().toString();System.out.println(服务器当前的时间为: + s);reader.close();isreader.close();input.close();socket.close();server.close(); catch (IOException e) e.printStackTrace();package demo;import java.io.IOException;import java.io.OutputStream;import .UnknownHostException;import .Socket;public class Client public static void main(String args) try Socket socket = new Socket(localhost, 9527);OutputStream out = socket.getOutputStream();out.write(Timen.getBytes();out.write(exitn.getBytes(); catch (UnknownHostException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();运行结果如下:实验题4 编写一数据报通信程序,实现简单的聊天功能。聊天内容输入文本确定清空退出图3.14 聊天程序界面基本要求 两人一组编写完整程序。“聊天内容”和“输入文本”分别为当前聊天的历史信息和当前要传送出去的聊天文本。“确定”、“清空”、“退出”三个按钮分别实现发送当前聊天文本、清空当前聊天文本和退出系统的功能。具体代码如下:package ChattingP;import java.awt.*;import java.awt.event.*;import java.io.IOException;import .*;import javax.swing.*;public class UDPmessage extends JFrame implements ActionListenerprivate JTextArea text;private JTextField ipText;private JTextField sendText;private JButton button;private DatagramSocket socket;private JScrollBar vsBar;public UDPmessage()setTitle(UDP聊天程序);setBounds(100,100,400,300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLayout(new BorderLayout();text = new JTextArea();text.setEditable(false);JScrollPane textPanel = new JScrollPane(text);vsBar = textPanel.getVerticalScrollBar();add(textPanel,BorderLayout.CENTER);JPanel panel = new JPanel();BorderLayout panelLayout = new BorderLayout();panelLayout.setHgap(5);panel.setLayout(panelLayout);ipText = new JTextField(120.95.160.);panel.add(ipText,BorderLayout.WEST);sendText = new JTextField();panel.add(sendText,BorderLayout.CENTER);button = new JButton(发送);panel.add(button,BorderLayout.EAST);add(panel,BorderLayout.SOUTH);setVisible(true);server();button.addActionListener(this);private void server()try socket = new DatagramSocket(9527);byte buf = new byte1024;final DatagramPacket dpl = new DatagramPacket(buf,buf.length);Runnable runnable = new Runnable()public void run()while(true)tryThread.sleep(100);socket.receive(dpl);int length = dpl.getLength();String message = new String(dpl.getData(),0,length);String ip = dpl.getAddress().getHostAddress();if(!InetAddress.getLocalHost().getHostAddress().equals(ip)text.append(ip+:n +message+n);vsBar.setValue(vsBar.getMaximum(); catch(IOException e)e.printStackTrace(); catch(InterruptedException e)e.printStackTrace();new Thread(runnable).start(); catch (SocketException e) e.printStackTrace();public void actionPerformed(ActionEvent ev)try String ip = ipText.getText();InetAddress address = InetAddress.getByName(ip);byte data = sendText.getText().getBytes();DatagramPacket dp = new DatagramPacket(data, data.length,address,9527);String myip = InetAddress.getLocalHost().getHostAddress();text.append(myip+:n +sendText.getText()+n);socket.send(dp);sendText.setText(null); catch (UnknownHostException e) / TODO Auto-generated catch blocke.printStackTrace();catch(IOException e)e.printStackTrace();public static void main(String args) JFrame frame = new UDPmessage();运行结果如下:实验题5 客户机之间通过服务器交换数据。 提示:为了适应传输各种类型的数据,必须统一客户机的数据格式,为此可以将数据封装在一个对象中,数据传输以对象的形式传输。因此必须定义一个数据封装的类,此类实现Serializable接口。实验代码:package cie.bing;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;public class Feng implements Serializable String name;String password;int age;Overridepublic String toString() / TODO Auto-generated method stubreturn name+n+password+n+age;public Feng(String name,String password,int age)=name;this.password=password;this.age=age;public void setpassword(String password)this.password=password;public static void main(String args) throws IOException / TODO Auto-generated method stubFeng user=new Feng(li,3123,23);try Fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年草莓种植基地有机肥料供应合作协议
- 2025年度个人与企业车辆共享租赁及驾驶安全保障合同
- 2025年跨境电商仓储配送与安全运输合作协议
- 流感中医知识试题及答案
- 地铁公务员面试题及答案
- 穿越公务员面试题及答案
- 便秘试题及答案中医内科
- 2025年环保产业环保产品报告:环保产品市场现状与消费者需求分析
- 2025年工业互联网平台自然语言处理技术在工业生产过程自动化中的应用报告
- 2025年无人机物流配送在物流行业技术标准制定中的应用报告
- 2025年人工流产试题及答案
- 2026届潍坊市达标名校中考联考语文试卷含解析
- (新教材)2025年秋期部编人教版二年级上册小学语文全册教案(教学设计)(新课标核心素养教案)
- (标准)棋牌室转让合同协议书
- 幼儿园膳食委员会组织机构及职责
- 手术室护理实践指南:院感控制管理
- ERP方案设计与研究
- 高二语文秋季开学第-课:笔墨山河待君行
- 阆中古镇管理办法细则
- 幼儿园教师安全管理培训
- 2025年湖南省长沙市中考历史试卷(含解析)
评论
0/150
提交评论