java Swing 与socket 做的单线程聊天程序.doc

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

西安工业大学

计算机科学与工程学院网络工程系组建技术J1实验报告

班级:090612

姓名:唐建

学号:090612114

2011年10月17日

一、实验目的

1.掌握InetAddress类的使用。

2.掌握TCP与UDP编程:Socket与Datagram的概念和编程方法。

3.掌握URL类的使用:URL的概念和编程。

二、实验要求

通过Socket编程,掌握网络应用程序的开发方法;完成数据库的连接;掌握利用

Java提供的基本组件进行网络传输;掌握Java提供的多线程机制,异常处理机制和低层对协议的通信机制,通过Socket编程,掌握网络应用程序的开发方法;设计测试,性能评估。上机练习之前,必须先完成程序的书写,再上机调试。

三、实验内容

(一)使用InetAddress类的方法

通过使用InetAddress类的方法,获取/的主机的IP地址;获取本地机的名称和IP地址。

(二)Socket编程

使用Socket编程,客户机发送数据到

服务器,服务器将接收到的数据返回给客户机。

(三)UDP编程

使用UDP编程,客户机发送数据到服务器,服务器将接收到的数据返回给客户机(四)获取URL信息

(五)利用URL类获取网络资源

(六)利用URLConnection对URL资源的读取

(七)掌握URLConnection对URL资源的写入

四:程序如下:

//服务器端代码(Server):

package com.demo.test;

import java.awt.BorderLayout;

import java.awt.Font;

import java.awt.Toolkit;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader; import java.io.PrintWriter;

import .ServerSocket;

import .Socket;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane; import javax.swing.JPanel;

import javax.swing.JScrollPane; import javax.swing.JTextArea;

import javax.swing.JTextField;

public class Server extends JFrame {

private JTextField textField = null; private JButton button = null; private JTextArea textArea = null; private JScrollPane scrollPane= null;

private JPanel panel = null;

private ServerSocket server = null; private Socket socket = null; private BufferedReader reader= null;

private PrintWriter writer= null; private String msg = null;//存放接收到的消息

private String message = null;//存放发送的消息

private boolean flag= false;//判断客户端是否断开连接

public Server(){

super();

textField = new JTextField(40);

button = new JButton("发送");

textArea = new JTextArea();

scrollPane = new JScrollPane();

panel = new JPanel();

this.add(scrollPane,BorderLayout.CE NTER);

this.add(panel,BorderLayout.SOUTH);

scrollPane.setViewportView(textArea );

panel.add(textField);

textField.setFont(new Font("仿宋",Font.BOLD,18));

textField.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

send();

}

});

panel.add(button);

button.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

send();

}});

this.setTitle("服务器端Server");

this.setSize(500,500);

this.setLocation((int)(Toolkit.getD efaultToolkit().getScreenSize().getWi dth()/2-250),(int)(Toolkit.getDefault Toolkit().getScreenSize().getHeight() /2-250));

this.setDefaultCloseOperation(JFram e.EXIT_ON_CLOSE);

this.setVisible(true);

//初始化服务器端

相关文档
最新文档