计算机网络实训设计基于tcpip协议程序设计报告计算机专业毕业论文设计内容摘要:

extField txfName = new JTextField(10)。 //用户名输入文本框 JTextArea txfMsgView = new JTextArea(20,60)。 //创建用于显示聊天信息文本域 JButton btSendMsg = new JButton(发送消息 )。 //创建用于发送信息的按钮 JTextField txfMsg = new JTextField(20)。 //创建用于输入聊天信 息文本框 static int port=6789。 //端口号 Socket socket=null。 //连接端口 PrintStream ps=null。 //打印输出流 MyThread myThread=null。 //监听线程 /*构造方法 */ public Client(){ super(欢迎进入聊天会话程序 )。 //创建窗体标题 JPanel panelName = new JPanel()。 //创建表示用户名的面板 (lblName)。 //将用户名的标签信息放入到面板中 (txfName)。 //将表示用户名的文本框信息放入到面板 JPanel panelMsg = new JPanel()。 //创建用于输入聊天信息面板 (new Label(聊天信息 ))。 //创建显示聊天信息的标题 (txfMsg)。 //将输入信息文本框放入到面板中 (btSendMsg)。 //将发送信息按钮放入到面板中 (this)。 //为发送信息按钮添 监听方法 JPanel panel = new JPanel()。 //创建存放用户名和聊天信息的面板 (new GridLayout(2,1,3,3))。 //设置网格布局管理器 (panelName)。 //将表示用户名信息的面板放入到面板中 (panelMsg)。 //将表示聊天信息的面板放入到面板中 setLayout(new BorderLayout())。 //设置布局管理器 add(panel, )。 //将输入聊天信息的面板放入到布局管理器上部 add(txfMsgView, )。 //将显示聊天 信息的面板放入到布局管理器中央 (false)。 //将显示信息文本框设置为不可编辑 pack()。 //调整此窗口的大小 setBounds(400, 200, 500, 300)。 //设置窗体位置大小 setVisible(true)。 //设置窗体是否显示 setDefaultCloseOperation()。 // 设置窗体关闭的处理方式 7 } 在服务器端的构造方法中 首先调用其父类的构造方法创建窗体标题,并将信息文本框设置为不可编辑,然后创建用于显示和输入聊天信息以及存放用户名和聊天信息的画面,并将表示用户名信息和聊天信息的文本框和标签放入到不同的面板中。 为存放用户名和聊天信息的画面设置 网格布局管理器 ,将表示用户信息的面板和聊天信息的面板放入到该面板中。 设置布局管理器,将聊天信息多行文本框和显示聊天信息面板放入到布局管理器中。 最后设置窗口大小、是否显示以及关闭的处理方式。 4.服务器端设计 服务器端程序主要用 来监听端口并处理来自不同用户的请求,因此在服务器端的代码中需要使用一个线程类来处理每一个用户发出的请求信息。 在服务器程序中首先定义一个与客户端连接的端口号,创建用来实现服务器套接字和客户端套接字的对象。 在服务器端的构造方法中,初始化服务器套接字,并使用 accept()方法监听指定端口,不断接受来自客户端的套接字请求,同时实例化一个客户线程并使用 statr()方法启动该线程。 接着创建一个用来处理用户发出的请求信息的线程类, 在该类中 运行一个线程,读取来自客户端的数据。 如果判断读取的数据流为空,则将方法返回。 如果读取的 数据不为空,则截取客户端发送的聊天信息,如果接受的数据流是 exit,则推出循环。 最后在 main()方法中创建一个 server 对象。 部分实现代码如下。 : private static int port=6789。 //端口号 private static ServerSocket server=null。 //创建用来实现服务器套接字 对象 private static Socket socket=null。 //创建用来实现客户端接字的对象 、接受来自客户端套接字请求 . try { (服务器已经启动 )。 server=new ServerSocket(port)。 //初始化服务器套接字 while(true){ socket=()。 //接受来自客户端套接字请求 MyThread myThread=new MyThread(socket)。 //实例化一个客户线程 ()。 //启动线程 } } public void run(){ try{。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。