JAVA课程设计报告

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

南京工程学院

课程设计说明书(论文)

题目聊天小程序

课程名称JA V A基础课程设计

院(系、部、中心)康尼学院

专业计算机科学与技术

班级 K软测111班

学生姓名杨莹

学号 240111508

设计地点信息楼A402

指导教师彭焕峰

成绩

设计起止时间:2013年12月23日至2013年12月27日

一、课程设计目的

本课程设计的目的是为了让学生在学习《JA V A基础》课程的基础上,

进一步深入巩固所学理论知识、使理论与实际相结合的重要实践环节。本课

程设计通过完成一些具有一定难度的程序的编写、调试、运行工作,掌握面

向过程程序设计的基本方法,从而提高学生分析问题、解决问题的能力。

课程设计是教学中很重要的一项实践环节,它可以帮助学生充分理解课堂教学中的内容,对提高学生的实践认识和实际动手能力都有很重要的实际意义。学生应在一周的时间内,按照课程设计的要求,结合所学的理论知识,查找相关资料,完成好本次课程设计,提高程序编写的能力,为将来的实际工作取得一定的经验。

二、课程设计题目及要求

要求:使用图形用户界面。能实现一个聊天室中多人聊天。

三、程序设计与分析

SeverSocket(port)

创建SeverSocket对象,提供TCP连接服务

Accept()

在指定端口等待

客户端的连接请求

连接成功,获得一个已经连接的Socke对象

InputStream读取Socket 对象的输入流OutputStream写入Socket对象的输入流

Socket.close()关闭TCP 连接

SeverSocket.close()停止提供TCP连接服务

Socket(host.port),创建Socket对象,向指定主

机端口发出连接请求InputStream读取Socket 对象的输入流OutputStream写入Socket对象的输入流Socket.close()关闭TCP 连接

客户端

一个Socket对象

服务端

一个serversocket(port)对

象和一个socket对象

申请连接

建立socket连接

通过流传送数据

1.窗口设置

super("聊天室 "+name+" ");//得到当前主机地址

this.setBounds(320,240,360,240);//窗口大小

this.setDefaultCloseOperation(EXIT_ON_CLOSE);//单击关闭就关闭窗口

this.text_receiver=new JTextArea();//接收信息文本区

this.text_receiver.setEditable(false);//文本区不可编辑

this.getContentPane().add(new

JScrollPane(this.text_receiver));//调用系统默认的容器,

//创建一个空的(无视口的视图)JScrollPane,需要时水平和垂直滚动条都可显示

//添加面板(里面在添加滚动窗格,这是带有滚动条的视图容器)

JPanel panel=new JPanel();//添加一个面板

this.getContentPane().add(panel,"South");//将面板添加在窗口的上方

this.text_sender=new JTextField(16);//发送信息文本行(可以编辑)

panel.add(this.text_sender);//将发送信息的文本行添加到面板上

button_send=new JButton("发送");//添加发送按钮

panel.add(button_send);//将发送按钮添加到面板上

button_leave=new JButton("离线");//添加离线按钮

panel.add(button_leave);//将离线按钮添加到面板上

this.setVisible(true);//设置窗口可见

2.服务器端

ServerSocket server=new ServerSocket(port);//ServerSocket提供TCP连接服务

Socket client=server.accept();//等待接受客户端的连接申请

new ChatTCPSocketJFrame(name,client);//聊天室的图形用户界面,同客户端

server.close();

3.连接服务器端

public ChatTCPSocketJFrame(String name,String host,int port)throws IOException

{

this(name,new Socket(host,port));//客户端向指定主机的端口发出TCP连接请求

}

4.显示连接并约定离线

=name;

this.socket=socket;

this.cout=new PrintWriter(socket.getOutputStream(),true);//获得Socket的输出流,true表示立即flush

//使用PrintWriter建立一个向clientSocket发送信息的通道,如果你要向客户端发送内容就可以通过调用

this.cout.println(name);

BufferedReader cin=new BufferedReader(new InputStreamReader(socket.getInputStream()));

//获得Socket对象的输入流,

//创建字符输入流

String aline=cin.readLine();//从缓冲区BufferedReader中一行一行的读取,并返回到aline

text_receiver.append("连接"+aline+"成功"+"\r\n");

aline=cin.readLine();

while(aline!=null&&!aline.equals("bye"))

{

text_receiver.append(aline+"\r\n");

aline=cin.readLine();

}

cin.close();

cout.close();

socket.close();

button_send.setEnabled(false);

button_leave.setEnabled(false);

}

5.内容格式

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==button_send)

{

this.cout.println(name+" 说:"+text_sender.getText());//通过流发送给对方,并且显示出来

text_receiver.append("我说:"+text_sender.getText()+"\n");

相关文档
最新文档