河南理工大学本科生毕业设计(论文)说明书
图4-1 聊天系统工作原理图
(2)聊天系统设计步骤如下:
①.首先搜集一定的相关资料,根据自己的构思设计出理想的界面(服务器端界面和客户端界面);
②.构思玩界面的设计后,根据所要实现的功能编写相应的代码; ③.编写完代码后,就应该进入调试运行阶段; ④.运行无误后,此系统就大功告成。
4.3 聊天系统各功能模块
(1)服务器程序模块
服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类java.net.Socket,使得编写网络应用程序相对容易。服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8888,然后无限循环调用accept()方法接受客户程序的连接。
服务器端程序流程图如图4-2:
16
河南理工大学本科生毕业设计(论文)说明书
图4-2 服务器端程序流程图
代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*;
import javax.swing.JOptionPane; import javax.swing.event.*; import java.net.*;
17
河南理工大学本科生毕业设计(论文)说明书
import java.io.*;
public class ChatServer extends JFrame implements ActionListener{ public static int port=8888;//服务器的侦听端口 ServerSocket serverSocket;//服务端Socket Image icon;//程序图标 JComboBox combobox; JTextArea messageShow; JScrollPane messageScrollPane; JTextField showStatus;
JLabel sendToLabel,messageLabel; JTextField sysMessage; JButton sysMessageButton; UserLinkList userLinkList;
JMenuBar jMenuBar=new JMenuBar(); JMenu serviceMenu=new JMenu(\服务(V)\ JMenuItem portItem=new JMenuItem(\端口设置(P)\ JMenuItem startItem=new JMenuItem(\启动服务(S)\ JMenuItem stopItem=new JMenuItem(\停止服务(T)\ JMenuItem exitItem=new JMenuItem(\退出(X)\ JMenu helpMenu=new JMenu(\帮助(H)\ JMenuItem helpItem=new JMenuItem(\帮助(H)\ JToolBar toolBar=new JToolBar(); JButton portSet; JButton startServer; JButton stopServer; JButton exitButton;
Dimension faceSize=new Dimension(500,700);
18
河南理工大学本科生毕业设计(论文)说明书
ServerListen listenThread; JPanel downPanel; GridBagLayout gridBag; GridBagConstraints gridBagCon; public ChatServer(){ init();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack();
this.setSize(faceSize);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)(screenSize.height-faceSize.getHeight())/2); this.setResizable(false); this.setTitle(\聊天室服务端\ icon=getImage(\ this.setIconImage(icon); //show(); setVisible(true);
serviceMenu.setMnemonic('V'); portItem.setMnemonic('P');
portItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK)); startItem.setMnemonic('s');
startItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); stopItem.setMnemonic('T');
stopItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputE
19
河南理工大学本科生毕业设计(论文)说明书
vent.CTRL_MASK)); exitItem.setMnemonic('X');
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); helpMenu.setMnemonic('H'); helpItem.setMnemonic('H');
helpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK)); }
public void init() {
Container contentPane=getContentPane(); contentPane.setLayout(new BorderLayout()); serviceMenu.add(portItem); serviceMenu.add(startItem); serviceMenu.add(stopItem); serviceMenu.add(exitItem); jMenuBar.add(serviceMenu); helpMenu.add(helpItem); jMenuBar.add(helpMenu); setJMenuBar(jMenuBar); portSet=new JButton(\端口设置\ startServer=new JButton(\启动服务\ stopServer=new JButton(\停止服务\ exitButton=new JButton(\退出\ toolBar.add(portSet); toolBar.addSeparator(); toolBar.add(startServer);
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java聊天室毕业论文(5)在线全文阅读。
相关推荐: