计算机网络课程设计Word格式.docx

上传人:b****2 文档编号:14105705 上传时间:2022-10-18 格式:DOCX 页数:20 大小:171.67KB
下载 相关 举报
计算机网络课程设计Word格式.docx_第1页
第1页 / 共20页
计算机网络课程设计Word格式.docx_第2页
第2页 / 共20页
计算机网络课程设计Word格式.docx_第3页
第3页 / 共20页
计算机网络课程设计Word格式.docx_第4页
第4页 / 共20页
计算机网络课程设计Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

计算机网络课程设计Word格式.docx

《计算机网络课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

计算机网络课程设计Word格式.docx

●聊天程序:

完成广播的公共聊天平台和单播的私人聊天,并应具有简单的帐号管

理功能;

●文件传输程序:

完成服务器端可供传输文件浏览、客户端目标路径可选、指定文

件传输等功能;

●电子邮件程序:

完成客户端在线收、发邮件,管理邮件等功能。

●套接字编程任选题目

2、撰写课程设计报告——题目、目的、方案设计、调试结果、心得体会。

3、周一查阅资料,设计方案;

周二至周四上机编写代码,调试实现;

周五演示程序、答辩,并上交课程设计报告。

4、两名同学一组,自由组合,并根据完成任务量情况署名。

5、撰写课程设计报告:

封皮(设计题目、专业、班级、学生姓名、学生学号、指导教师姓名、起止时间)、具体任务、软件环境、算法设计思想及流程图、源代码、运行结果、收获及体会、参考文献

成绩评定方法:

按对套接字基本知识的掌握程度,选定软件项目的典型性和难度,分析设计方案是否正确,功能实现是否完善,文档说明是否清楚、准确,格式是否规范等环节评分。

成绩按优、良、中、及格、不及格五级分制评定。

指导教师签字:

路莹肖鹏系(教研室)主任签字:

 

课程设计报告

设计题目:

套接字网络通信程序

专业计算机科学与技术

学生1计算机092-09王磊

学生2计算机092-12郑林

指导教师路莹,肖鹏

起止时间2012.6.25—2012.6.29

一、需求分析:

  编写一个聊天程序,能够实现广播的公共聊天平台,并具有简单的帐号管理功能。

采用c/s模式,基于winsock套接字的网络通信程序,可实现双机通信。

二、概要设计

客户端模块功能:

界面:

显示登录按钮,退出按钮,消息显示框,消息发送框,发送按钮等功能性组件,及用户名,服务器IP,参与者等提示信息。

登录:

输入用户名,服务器IP,点击登陆按钮,实例化一个本地套接字,然后实例化客户端线程用来建立和服务端的连接。

退出:

关闭套接字,停止线程运行,并重新置空值。

消息发送:

使用登录时建立的套接字发送消息给服务器。

消息接受显示:

把从服务端传递过来的消息显示在聊天内容框。

算法设计:

(1)publicclassChatClient{}模块:

该模块作为创建客户的方法,其中包含客户端套接字的定义模块,客户端图形界面设计模块,连接服务器模块,接收消息的线程体模块,客户端按钮监听模块,监听处理模块等。

(2)客户端套接字的定义模块:

通过socket类创建一个socket类对象,连接到服务器端所开放的端口。

(3)客户端图形界面设计模块:

通过调用JFrame类的方法,设计客户端界面按钮和界面属性。

包括五个文本框,三个按钮(发送、登录、退出)。

(4)连接服务器模块:

通过服务器的IP地址和指定端口8888连接到服务器。

(5)接收消息的线程体模块:

通过创建多线程接收服务器发送的消息,加入异常处理。

(6)客户端按钮监听和处理模块:

通过为每个按钮创建监听器,以及为每个监听编写处理方法来处理客户端的操作。

例如当点击“发送”按钮时,监听器监测到用户的动作,通过调用相应的程序向服务器端发送客户端消息。

服务器端模块功能:

服务器端通过创建ServerSocket对象,为客户端提供IP地址和服务器开放的端口号,同时服务器还创建了两个列表,一个用来存放用户名,另一个用来存放线程。

服务器端通过监听8888端口,接收来自客服端的消息,并将其转发给每个客户端。

(1)publicclassChatServer{}模块:

该模块用来创建ServerSocket对象,启动服务器,通过创建的多线程监听开放端口,接收并转发客户端发来的消息。

(2)publicvoidstartServer(){}模块:

该模块的功能是启动服务器,获取服务器的IP,并加入了异常处理功能。

(3)publicvoidrun(){}模块:

该模块是消息接收和转发模块,通过端口接收消息并转发给每一个在线的客户端。

系统软件环境:

JDK2.0,NetbeansIDE6.9.1

三、详细设计

客户端代码:

packagejavaapplication27;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

import.*;

importjavax.swing.*;

importjava.text.*;

importjava.util.*;

/**

*聊天系统客户端

*

*/

publicclassChatClient{

Socketsocket;

DataOutputStreamdos;

//数据输出流

DataInputStreamdis;

booleanisConnected=false;

TextAreata1;

TextAreata2;

TextAreata3;

StringuserName;

StringserverIP;

Threadreceiver=newThread(newReceiverThread());

publicChatClient(){

newInterface();

}

//连接到服务器

publicvoidconnect()

{

try

{

socket=newSocket(serverIP,8888);

//传入端口号和IP

dos=newDataOutputStream(socket.getOutputStream());

//写入数据输出流中

dis=newDataInputStream(socket.getInputStream());

isConnected=true;

}

catch(UnknownHostExceptione)

System.out.println("

找不到服务器..."

);

}catch(IOExceptione)

e.printStackTrace();

//接收消息的线程体

classReceiverThreadimplementsRunnable

Stringstr=null;

publicvoidrun()

try

{

while(isConnected)//当连接成功

{

str=dis.readUTF();

//读出数据

if(str.startsWith("

@"

))//如果接收到的是在线者的名字

{

ta3.setText(str.substring(1,str.length()-1));

}

else

{//如果接收到的是聊天内容

ta1.setText(ta1.getText()+"

\n"

+str);

}

}catch(IOExceptione){

e.printStackTrace();

}

publicstaticvoidmain(String[]args){

try{//设置显示风格

UIManager.setLookAndFeel("

javax.swing.plaf.metal.MetalLookAndFeel"

}catch(Exceptione){

Can'

tsetthisLookAndFeel!

"

newChatClient();

classInterfaceextendsJFrameimplementsActionListener

{//客户端的界面

JTextFieldjtf1,jtf2;

publicInterface()

JPaneljp1=newJPanel();

jp1.setLayout(null);

ta1=newTextArea("

30,18,TextArea.SCROLLBARS_BOTH);

ta1.setEditable(false);

ta1.setBounds(6,0,420,265);

ta1.setBackground(Color.white);

ta2=newTextArea("

20,18,TextArea.SCROLLBARS_VERTICAL_ONLY);

//聊天内容输入区

ta2.setBounds(6,290,420,130);

JButtonjb1=newJButton("

发送"

jb1.addActionListener(this);

//给发送按钮注册监听器

jb1.setBounds(360,428,60,30);

jp1.add(ta1);

jp1.add(ta2);

jp1.add(jb1);

JPaneljp2=newJPanel();

//登录面板

//jp2.setBackground(color);

jtf1=newJTextField(15);

jtf2=newJTextField(15);

JButtonjb2=newJButton("

登录"

jb2.addActionListener(this);

//给登录按钮注册监听器

JButtonjb3=newJButton("

退出"

jb3.addActionListener(this);

//给退出按钮注册监听器

ta3=newTextArea("

21,15,TextArea.SCROLLBARS_VERTICAL_ONLY);

//在线者显示区

ta3.setEditable(false);

JPaneljp=newJPanel();

//jp.setBackground(color);

jp.add(jb2);

jp.add(jb3);

jp2.setLayout(newBoxLayout(jp2,BoxLayout.Y_AXIS));

//指定组件从上到下

jp2.add(newJLabel("

用户名"

));

jp2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1