2020年西安邮电学院 通信软件设计参照模板

  • 格式:docx
  • 大小:196.35 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安邮电学院实验报告

课程通信软件设计

开课时间至学年第学期

这个软件主要功能是以UDP为基础实现两台电脑之间收发简单文本消息。软件全部使用java编写,并以JavaBuilder8为工具进行编写与调试。布局方式采用NULL方式,主要使用AWT的组件和部分SWING的组件。

使用方法如下:

1 首先在输入IP地址的输入栏中输入想与之进行通信的主机的IP地址,即消息接受方的IP地址。

2 在消息编辑框中输入想发送的消息内容。

3 编辑完欲发送的消息后,点击“发送消息”按钮进行发送;

4 双方发送的消息和发送方与接受方的IP地址都会在下面的空白区域----“频道”内显示。

6 如果没有输入IP地址便发送编辑完的文本消息,空白区域内会显示出提示信息提示用户应输入接受方的IP地址。

7 当频道内显示的消息太多时,可以按”刷新频道”来清除频道内全部信息!

软件运行时候的抓图:

本机测试结果的抓图效果

程序代码与简要说明1 chatFrame类的代码:

package chat;

import .*;

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/**

*

Title:

*

Description:

*

Copyright: Copyright (c) 2004

*

Company:

* @author not attributable

* @version 1.0

*/

public class chatFrame extends JFrame {

JPanel contentPane;

Label label1 = new Label();

TextField textField1 = new TextField();

Label label2 = new Label();

TextField textField2 = new TextField();

Button button1 = new Button();

TextArea textArea1 = new TextArea();

DatagramPacket sendpacket,receivepacket; //定义发送和接受数据包DatagramSocket sendsocket,receivesocket;

//定义发送和接受DatagramSocket

//Construct the frame

public chatFrame() {

enableEvents(AWTEvent.WINDOW_EVENT_MASK);

try {

jbInit();

}

catch(Exception e) {

e.printStackTrace();

}

}

//Component initialization

private void jbInit() throws Exception { //定义个组件和他们的布局contentPane = (JPanel) this.getContentPane();

label2.setAlignment(Label.CENTER);

label2.setFont(new java.awt.Font("SansSerif", 0, 15));

label2.setForeground(Color.black);

label2.setText("消息编辑框");

label1.setBounds(new Rectangle(14, 17, 133, 32));

contentPane.setLayout(null);

this.setSize(new Dimension(500, 400));

this.setTitle("用UDP实现聊天");

textField1.setBackground(SystemColor.text);

textField1.setColumns(0);

textField1.setFont(new java.awt.Font("Dialog", 0, 16));

textField1.setText("");

textField1.setBounds(new Rectangle(129, 72, 200, 61));

label1.setAlignment(Label.CENTER);

label1.setFont(new java.awt.Font("Dialog", 0, 15));

label1.setText("输入对方IP地址");

label2.setBounds(new Rectangle(23, 86, 108, 28));

try{

sendsocket=new DatagramSocket(5000); //初始化

receivesocket=new DatagramSocket(5001);

}

catch(SocketException se){ //可能产生Socketexception类的异常se.printStackTrace();

System.exit(0);

}

button1.setBackground(Color.magenta);

button1.setFont(new java.awt.Font("Dialog", 0, 13));

button1.setLabel("发送消息");

button1.setBounds(new Rectangle(374, 23, 88, 42));

button1.addActionListener(new java.awt.event.ActionListener (){

public void actionPerformed(ActionEvent e){

button1_actionPerformed(e);

}

});

textField2.setBackground(SystemColor.activeCaptionBorder);

textField2.setFont(new java.awt.Font("Dialog", 1, 18));

textField2.setLocale(java.util.Locale.getDefault());

textField2.setText("");

textField2.setBounds(new Rectangle(166, 21, 169, 29));

textArea1.setFont(new java.awt.Font("Dialog", 0, 13));

textArea1.setText("");

textArea1.setBounds(new Rectangle(46, 157, 382, 185));

contentPane.setBackground(new Color(113, 111, 159));

jButton1.setBackground(Color.pink);

jButton1.setBounds(new Rectangle(374, 86, 87, 42));

jButton1.setFont(new java.awt.Font("Dialog", 0, 13));

jButton1.setText("刷新频道");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {

jButton1_actionPerformed(e);

}

});

contentPane.add(label1, null);

contentPane.add(textField2, null);

contentPane.add(textField1, null);

contentPane.add(label2, null);

contentPane.add(textArea1, null);

contentPane.add(jButton1, null);

contentPane.add(button1, null);

}

//Overridden so we can exit when window is closed

protected void processWindowEvent(WindowEvent e) {

super.processWindowEvent(e);