计算机网络编程实验(共11页).doc
《计算机网络编程实验(共11页).doc》由会员分享,可在线阅读,更多相关《计算机网络编程实验(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上计算机网络编程技术实 训 报 告基于UDP协议多客户有图形用户界面的网上聊天程序 UDP-based protocol multi-client with a graphical user interface, online chat program班 级:姓 名:学 号:伊犁师范学院电子与信息工程学院一 实验目的巩固所学的Java语言基础知识,增进Java语言的编辑基本功,拓展常用类库的应用,了解Java网络程序设计的思路和方法,熟练掌握UDP协议编写程序的设计方法,掌握基本网络包的使用方法,熟练使用Socket以及多线程。二 实验内容运用Java程序编写聊天室,实
2、现一个基于UDP协议的简单的聊天程序,支持多人聊天并且客户端具有图形化用户界面。程序实现了聊天室的基本功能,其中有:1.启动服务器。2.启动登录界面。3.进入客户端界面。4.发送信息。5.离开客户端界面。6.关闭服务器。三、实验环境操作系统:Windows平台。测试环境:Eclipse。四、实验步骤 1创建项目,组织文件 启动Eclipse ,建立项目、包及各类,键入代码,操作结果如图1所示。图1项目和文件2. 运行程序进行测试(1)首先运行Server.java,打开“聊天室服务器”。服务器IP地址为192.168.0.2如图2所示。图2服务器控制台(2) 服务器监听是否有新聊天者连接,如果
3、没有,一直等待。如图3所示。图3 服务器等待(3)运行客户端程序client.java,打开“多人聊天室“界面,客户端1的IP地址为192.168.0.3客户端2的IP地址为192.168.0.49,如图4所示。图4聊天室客户端界面(4) 在“多人聊天室”界面输入框输入聊天信息。如图5所示。图5在输入框输入聊天信息(5)在“多人聊天室”界面发送信息。如图6所示。图6发送聊天信息(6) 服务器端显示两个客户端聊天内容,如图7所示。图7服务器端显示聊天内容(7) 退出服务器和多人聊天室。五、程序清单/多人聊天室服务器端package ChatFrame_01;import .DatagramPac
4、ket;import .DatagramSocket;import .InetAddress;import .Socket;import java.util.*;public class Server List ips = new ArrayList();DatagramSocket socket;DatagramPacket packet;DatagramSocket ssocket;DatagramPacket spacket;public Server() throws Exception socket = new DatagramSocket(6666);ssocket=new Dat
5、agramSocket(8888);public void listen() throws Exception byte array = new byte100;packet = new DatagramPacket(array, array.length);socket.receive(packet);byte data=packet.getData();String received = new String(data,0,data.length,UTF-8);System.out.println(received);String ss = received.split(|);String
6、 ip = ss0;byte dt=ss1.getBytes(UTF-8);spacket=new DatagramPacket(dt,dt.length,InetAddress.getByName(ip),3333);ssocket.send(spacket);public static void main(String args) throws Exception Server s = new Server();while (true) s.listen();/多人聊天室客户端package ChatFrame_01;import java.io.*;import javax.swing.
7、UIManager;import java.awt.*;public class ChatApp boolean packFrame = false;ChatApp() ChatFrame frame = new ChatFrame();if (packFrame) frame.pack(); else frame.validate();/ 放置窗体在屏幕中央Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = frame.getSize();if (frameSize.
8、height screenSize.height) frameSize.height = screenSize.height;if (frameSize.width screenSize.width) frameSize.width = screenSize.width;frame.setLocation(screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);frame.setVisible(true);frame.waitforpackets();public static vo
9、id main(String args) new ChatApp();/登录窗口package ChatFrame_01;import .*;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.lang.*;import java.awt.color.*;import javax.swing.JOptionPane;public class ChatFrame extends JFrame JPanel contentPane;JLabel label1 = ne
10、w JLabel();/ 发送消息JLabel label2 = new JLabel();/ 输入ipLabel label3 = new Label();/ 输入端口标签Label label4 = new Label();/ 输出端口标签JTextField textField1 = new JTextField();/ 发送消息JTextField textField2 = new JTextField();/ 输入ipJTextField textField3 = new JTextField();/ 获得输入端口JTextField textField4 = new JTextFi
11、eld();/ 获得输出端口JButton button1 = new JButton(发送);/ 发送消息TextArea textArea1 = new TextArea();JOptionPane jopane = new JOptionPane();DatagramPacket sendpacket, receivepacket;/ 声明发送和接收数据包DatagramSocket sendsocket, receivesocket;/ 声明发送和接收DatagramSocketpublic ChatFrame() enableEvents(AWTEvent.WINDOW_EVENT_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 编程 实验 11
限制150内