Java网络编程课程设计
- 格式:pdf
- 大小:560.71 KB
- 文档页数:10
Java程序设计之网络编程课程设计一、概述网络编程是Java程序设计中的重要组成部分,是实现分布式计算的核心技术。
本文将介绍Java程序设计中的网络编程知识,并以课程设计为案例,对相关知识进行深入探讨。
二、网络编程基础知识Java程序中实现网络编程需要掌握以下基础知识:2.1 网络相关类Java提供了很多网络相关的类,包括Socket、ServerSocket、DatagramPacket、DatagramSocket等。
其中,Socket和ServerSocket 用于TCP协议的通信,而DatagramPacket和DatagramSocket用于UDP 协议的通信。
2.2 TCP协议TCP协议是面向连接的可靠数据传输协议。
在Java中,使用Socket和ServerSocket类来实现TCP协议的通信。
Socket类表示网络上的一个点,它的构造方法如下:public Socket(InetAddress address,int port)其中,address是目标主机的IP地址,port是端口号。
连接成功后,可以通过Socket对象的InputStream和OutputStream来进行数据的读写操作。
ServerSocket类表示服务器端的Socket,它的构造方法如下:public ServerSocket(int port)其中,port是服务器端的端口号。
当有客户端Socket连接到该端口时,ServerSocket类会创建一个Socket对象,并通过它进行数据的读写操作。
2.3 UDP协议UDP协议是无连接的不可靠数据传输协议。
在Java中,使用DatagramPacket和DatagramSocket类来实现UDP协议的通信。
DatagramPacket类表示UDP协议中的数据包,它的构造方法如下:public DatagramPacket(byte[] buf,int length,InetAddress address,int port)其中,buf是数据缓存区,length是数据长度,address是目标主机的IP地址,port是端口号。
J A V A网络编程课程设计报告安卓手机管家的设计与实现院系:光电与信息工程学院班级:网络工程2班设计者:施逸宁、陈翠榕、李雪、王小钰学号:136032012170 、136032012184、136032012185、136032012186指导教师:陈顺凡设计时间:2014年11月14日始福建师范大学二〇一四年十二月光电与信息工程学院《JAVA网络编程课程设计》验收及成绩评定表(项目组)课程设计任务书目录1. 序言 (1)1.1 背景 (1)1.2 相关技术 (1)1.2.1 JAVA概述 (1)1.2.2四大组件概述-------------------------------------------------------------------------------------------------22. 程序设计与实现 (2)2.1 需求分析 (2)2.2 程序结构 (3)2.3 代码实现 (3)2.3.1 软件管理模块 (3)2.3.2 自启管家模块 (5)2.3.3 圆形可旋转菜单模块 (7)3. 测试结果 (10)3.1 测试环境与使用方法 (10)3.2 功能测试 (10)3.2.1 软件管理 (10)3.2.2 病毒查杀 (11)3.2.3 自启管家 (14)3.2.2 流量监控 (15)3.2.2 来电归属地查询显示 (16)4. 总结 (16)参考文献 (17)1.序言1.1 课题背景苹果公司在07年推出iPhone,开启了智能手机的革命,但Android平台正以一个更快的速度蔓延世界。
目前在手机市场上,越来越多的手机厂商开始选择Android系统作为其主要发展对象。
自Android系统的第一个版本发布至今,Android系统已经占据市场份额第一的位置许久。
许多人使用360的手机管家,软件大,许多功能用不上,占据手机内存,造成不必要的浪费,用户需要集常用功能于一体的小型手机管家此软件是一款支持专注于安卓(Android)系统手机管理的手机软件。
jav课程设计内容一、教学目标本节课的教学目标是让学生掌握Java编程语言的基本语法和编程思想,学会使用Java编写简单的控制台应用程序。
具体分为以下三个部分:1.知识目标:(1)了解Java语言的基本语法和数据类型。
(2)掌握Java程序的结构和编写方法。
(3)理解面向对象编程的基本概念,如类、对象、封装、继承和多态。
2.技能目标:(1)能够使用Java编写简单的控制台应用程序。
(2)学会使用Java编写面向对象的程序,具备初步的编程能力。
3.情感态度价值观目标:培养学生对编程语言的兴趣,激发学生主动学习和探索编程的欲望,培养学生的团队协作精神和自主学习能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法和数据类型。
2.Java程序的结构和编写方法。
3.面向对象编程的基本概念,如类、对象、封装、继承和多态。
4.编写简单的控制台应用程序,巩固所学知识。
三、教学方法为了更好地实现教学目标,本节课采用以下几种教学方法:1.讲授法:讲解Java语言的基本语法、数据类型和程序结构。
2.案例分析法:通过分析实例,使学生掌握面向对象编程的基本概念。
3.实验法:让学生动手编写控制台应用程序,巩固所学知识。
4.讨论法:鼓励学生积极参与课堂讨论,培养学生的团队协作精神。
四、教学资源为了保证教学效果,本节课准备以下教学资源:1.教材:《Java编程入门》2.参考书:《Java核心技术》3.多媒体资料:PPT课件、教学视频4.实验设备:计算机、网络环境5.在线编程平台:例如LeetCode、牛客网,供学生课后练习和提高编程能力。
五、教学评估为了全面、客观地评估学生的学习成果,本节课采用以下几种评估方式:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和基本素养。
2.作业:布置适量作业,要求学生在规定时间内完成,通过作业质量评估学生的掌握程度。
3.考试:安排一次课堂小测,测试学生对Java基本语法和编程思想的掌握情况。
Java网络编程基础课程设计引言随着互联网的发展,网络编程已经成为现代编程领域中不可或缺的一部分。
Java作为一门面向对象的编程语言,其网络编程方面也备受青睐。
在本课程设计中,我们将学习Java网络编程的基础知识,了解Java Socket编程的基本原理和使用方法,并通过编写简单的聊天室程序来巩固所学知识。
学习目标1.理解Java Socket编程的基本原理及其对网络编程的重要性;2.掌握Java Socket编程的基础知识和使用方法;3.通过编写Java聊天室程序,巩固Java Socket编程的实现和应用。
课程内容1. Java Socket编程基础知识1.1 Socket的基本概念Socket是建立在TCP/IP协议栈之上的一种网络通信协议,它是网络上实现通信过程中的一个必要的工具。
Socket在客户端和服务器之间建立一个连接通道,使得两者之间可以进行流式数据传输。
在Java中,Socket通常可以分为ServerSocket和Socket两种类型。
1.2 Socket编程的基本原理Java中的Socket编程基于客户端/服务器模型,其基本原理是:1.客户端向服务器发送请求;2.服务器接收请求,并返回响应;3.客户端接收响应,完成数据传输。
1.3 Socket编程的优势和局限性Socket编程的优势在于:1.可以实现异步、并发访问,提高网络通信效率;2.可以实现双向通信,满足多个客户端同时与服务器交互的需求。
Socket编程的局限性在于:1.容易受到网络环境的影响,例如延迟、丢包等问题;2.容易受到网络攻击,例如拒绝服务攻击等问题。
2. Java Socket编程基础应用2.1 ServerSocket和Socket的使用在Java中,ServerSocket和Socket是实现Socket编程的两种基础工具。
其中,ServerSocket用于监听客户端请求,Socket用于与服务器建立连接并进行数据交换。
Java程序设计之网络编程基础教程课程设计一、课程介绍网络编程是Java程序设计的一个重要领域,也是Java程序员必备的技能之一。
本课程着重讲解Java网络编程的基础知识和常用技术,包括Socket编程、HTTP协议、TCP/UDP协议等方面。
通过理论讲解和实际编程实践,在Java网络编程方面提高学生的编程水平和实际应用能力。
二、教学目标本课程旨在让学生掌握Java网络编程的基础知识和技能,包括:1.理解Socket编程的基本原理;2.掌握HTTP协议的基本原理及其应用;3.掌握TCP/UDP协议的基本概念,以及在Java网络编程中的应用;4.熟悉常用的Java网络编程框架和工具,如Netty、HttpClient等;5.能够使用Java实现简单的网络应用程序。
三、教学内容1. Socket编程•Socket编程的基本概念和使用方法;•Java Socket编程的实现方式;•实现简单的Socket网络应用程序。
2. HTTP协议•HTTP协议的基本概念和工作原理;•Java中使用HTTP协议的方法;•实现简单的HTTP网络应用程序。
3. TCP/UDP协议•TCP/UDP协议的基本概念和区别;•Java中使用TCP/UDP协议的方法;•实现简单的TCP/UDP网络应用程序。
4. Java网络编程框架和工具•Netty框架的基本使用方法;•HttpClient工具的基本使用方法;•使用框架和工具实现简单的网络应用程序。
5. 综合实践•运用所学的知识和技能,实现一个完整的Java网络应用程序。
四、考核方式1.日常作业:包括编程作业和理论掌握程度的检测;2.期中考试:主要测试学生的学习情况和理解程度;3.期末考试:综合测试学生的掌握程度和实际应用能力,包括编程实践和理论考核。
五、参考资料•《Java网络编程》,郭霖;•《Java网络编程》,Elliotte Rusty Harold;•《Netty实战》,Norman Maurer;•网络资源:Java官方文档、Stack Overflow等。
《网络编程技术课程设计》论文2012 — 2013学年第二学期题目:TCP网络通信程序专业班级:学号:姓名:指导老师:日期:TCP网络通信程序设计与实现摘要:目前,基于TCP/IP协议的网络得到了普及和飞速的发展,Windows下的网络程序越来越显得重要。
利用TCP/IP协议提供的编程接口———Socket(套接字)可以开发出TCP/IP应用程序。
正确的使用WindowsSocket,就可使得不同地址下的进程得以在Windows环境下顺利进行各种网络通信,因此研究WinSock更有意义。
而基于TCP/IP协议网络环境下的应用程序是通过客户机/服务器(C/S)作用方式模式在网络(应用)编程界面实现的。
本次实验采用java语言设计一个基于C/S模式的TCP网络通讯程序。
实现客户端与服务器端之间的数据传输。
关键词:TCP/IP 网络通信 java C/S(client/server)模式1引言计算机网络通信是以计算机为信息接收终端,融合了计算机网络技术的通信方式。
计算机网络通信顺畅的重要保障就是网络建设。
同时,网络建设也是计算机应用普及的基本条件,是推动经济社会发展的根本。
因此,了解计算机网络知识及网络编程技巧对于IT技术人员是必备技术之一。
2 基础理论和技术2.1网络基础知识网络上的计算机要互相通信,必须遵循一定的协议。
目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议。
在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。
而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。
网络编程主要解决两大问题:(1)如何准确的定位网络上一台或多台主机(2)找到主机后如何可靠高效的进行数据传输。
目前较流行的网络编程模型是客户机/服务器(C/S)结构。
即通信双方一方作为服务器等待客户提出请求并予以响应。
java课程设计.docx一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。
知识目标:通过本章节的学习,学生需要掌握Java编程的基本语法、数据类型、控制结构、函数等基础知识。
技能目标:学生能够运用Java编程解决简单的实际问题,具备基本的编程能力。
情感态度价值观目标:培养学生对编程的兴趣和热情,提高学生解决问题的能力。
二、教学内容本章节的教学内容主要包括Java编程的基本语法、数据类型、控制结构、函数等基础知识。
具体包括以下内容:1.Java编程的基本语法和规则2.数据类型:整数类型、浮点类型、字符类型、布尔类型等3.控制结构:顺序结构、选择结构、循环结构等4.函数:定义和调用函数,传递参数,返回值等5.常用内置函数:数学函数、字符串函数等三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式进行。
1.讲授法:通过讲解和示范,让学生掌握Java编程的基本语法和规则,以及数据类型、控制结构、函数等基础知识。
2.案例分析法:通过分析实际案例,让学生学会如何运用Java编程解决实际问题。
3.实验法:通过上机实验,让学生动手实践,巩固所学知识,提高编程能力。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等。
2.参考书:提供相关的Java编程参考书籍,如《Java编程思想》等。
3.多媒体资料:制作精美的PPT课件,提供Java编程相关的视频教程等。
4.实验设备:确保学生有足够的计算机设备进行上机实验。
五、教学评估本章节的教学评估主要包括平时表现、作业和考试三个部分,以全面、客观、公正地评估学生的学习成果。
1.平时表现:通过课堂参与、提问、讨论等方式,评估学生在课堂上的学习态度和表现。
2.作业:布置适量的作业,评估学生的知识掌握和运用能力。
3.考试:进行定期的考试,评估学生对章节知识的全面理解和掌握程度。
java编程课程设计一、教学目标本课程的目标是让学生掌握Java编程的基本概念、语法和编程技巧,培养学生独立思考和解决问题的能力,以及培养学生的团队合作意识和创新精神。
具体目标如下:1.掌握Java编程语言的基本语法和结构。
2.理解面向对象编程的基本概念和方法。
3.熟悉Java编程语言的常用类库和API。
4.能够使用Java编程语言编写简单的程序。
5.能够运用面向对象编程的思想解决实际问题。
6.能够使用Java编程语言进行调试和优化程序。
情感态度价值观目标:1.培养学生对编程的兴趣和热情,提高学生自我学习的动力。
2.培养学生团队合作意识和沟通能力,培养学生的团队协作能力。
3.培养学生创新精神和解决问题的能力,培养学生的独立思考能力。
二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、面向对象编程思想和常用类库。
具体安排如下:1.Java编程语言的基本语法:–数据类型和变量–运算符和表达式–数组和字符串2.面向对象编程思想:–继承和多态–封装和抽象3.Java编程语言的常用类库和API:–输入输出流–多线程编程三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
具体方法如下:1.讲授法:通过教师的讲解,让学生掌握Java编程语言的基本语法和概念。
2.案例分析法:通过分析实际案例,让学生理解面向对象编程的思想和方法。
3.实验法:通过编写和调试程序,让学生巩固Java编程语言的知识和技巧。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体资源如下:1.教材:选用《Java编程思想》作为主要教材,辅助以相关参考书籍。
2.多媒体资料:提供Java编程语言的教程、案例分析和编程技巧的视频资料。
3.实验设备:提供计算机和网络环境,让学生进行编程实验和调试。
五、教学评估本课程的评估方式包括平时表现、作业、考试和项目实践等。
评估方式应客观、公正,能够全面反映学生的学习成果。
J a v a网络编程实践课程设计说明书课程名称:Java网络编程课程设计题目:基于C/S的学生信息管理:学号:教学班号:指导教师:王小刚交通大学软件科学与工程系二○ 13 年 12 月 27 日任务书实现应用,可以通过网络在客户端对存放在服务器端的学生信息表(至少包含学号、、性别、年龄、籍贯等字段)学生纪录增、删、改、查,并返回结果。
要能通过菜单选择功能。
基于Socket,多客户端使用多线程,以能同时从多个客户端执行功能。
必须提供友好直观、布局合理的图形界面选择功能、显示信息和填写修改信息。
成员及分工列表图形界面设计者:数据库设计者: Socket设计者:多线程设计者:项目简述和目的熟悉JAVA 语法,掌握图形化界面、多线程、网络、数据库等综合编程,掌握用编程语言开发由若干功能组成的小型项目的基本流程,增强动手实践能力,巩固和加强书本知识的学习,体会JAVA编程的特点。
解题基本思路设计的信息管理系统中的窗体部分,没有使用菜单,而是按钮。
菜单虽然简单,方便,但我认为在窗体里运用按钮是有必要的,这样可以方便添加、删除,修改等动作,通过一步步地做,慢慢的集合,比较的清晰,还显得比较的有层次感. 利用Swing设计图形界面利用Access表设计数据库,利用socket设计网络信息管理模块分析和设计学生管理系统要实现查询,添加,删除,显示,修改等功能。
查询不存在要报错,添加相同也要报错,删除不存在的号也要报错,修改不成功也要报错。
如果成功的话也要提示。
而且每一步都要密码才能进行操作,否则报错提醒!主要程序源代码Client源代码package socket;import java.io.*;import .*;import java.awt.*;import javax.swing.*;import java.awt.event.*;class Client extends JFrame implements ActionListener//登入界面功能是输入正确的账号和密码才能进入,错误的话返回错误提示!{private JLabel usernameLabel;//帐号private JLabel a;//标题private JTextField usernameTextField;//帐号文本框private JLabel passwordLabel;//密码private JPasswordField passwordField;//密码文本框private JButton button1;//确定按钮private JButton button2;//取消按钮public Client(){super.setTitle("登录界面");Container c=getContentPane();c.setLayout(null);a=new JLabel("欢迎进入学生登入系统!");a.setBounds(50,30,300,30);a.setFont(new Font("黑色",Font.BOLD,25));usernameLabel=new JLabel("账号");usernameLabel.setBounds(50,90,170,30);usernameLabel.setFont(new Font("黑色",Font.BOLD,30)); usernameTextField=new JTextField();usernameTextField.setBounds(150,90,170,30); usernameTextField.setFont(new Font("宋体",Font.BOLD,20)); passwordLabel=new JLabel("密码:");passwordLabel.setBounds(50,120,170,30);passwordLabel.setFont(new Font("黑色",Font.BOLD,30)); passwordField=new JPasswordField();passwordField.setBounds(150,120,170,30);passwordField.setFont(new Font("黑色",Font.BOLD,30)); passwordField.setEchoChar('*');button1=new JButton();button1.setText("进入");button1.setFont(new Font("黑色",Font.BOLD,20));button1.setBounds(50,160,100,30);button2=new JButton();button2.setText("退出");button2.setFont(new Font("黑色",Font.BOLD,20));button2.setBounds(220,160,100,30);button1.addActionListener(this);//按钮监听button2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});c.add(passwordLabel);c.add(passwordField);c.add(usernameLabel);c.add(button1);c.add(button2);c.add(usernameTextField);c.add(a);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(400,300);setLocation(322,30);setVisible(true);}private void showText()//登入失败消息框{String xie;xie=usernameTextField.getText();JOptionPane.showMessageDialog(this.getParent(),"登入失败!"+xie);}private void showText1()//登入成功消息框{String xie;xie=usernameTextField.getText();JOptionPane.showMessageDialog(this.getParent(),"登入成功!"+xie);}public void actionPerformed(ActionEvent e)//按钮监听事件{Socket ssocket = null;String st1,st2,st3;final PrintWriter writer1;st1=usernameTextField.getText();st2=passwordField.getText();st3="进入"+","+st1+","+st2;//把帐号和密码打包成字符串try{ssocket=new Socket("localHost",10000);//创建socketwriter1=new PrintWriter(ssocket.getOutputStream());//发送给服务器!if(!(st1.equals(null)) && !(st2.equals(null)))//判断是否为空{writer1.println(st3);writer1.flush();}else if(st1.equals(null) || st2.equals(null))//判断是否为空{writer1.println("error1");writer1.flush();}BufferedReader read=new BufferedReader(new InputStreamReader(ssocket.getInputStream()));String s_red=null;System.out.println("please wait.......");while(true){s_red=read.readLine();if(s_red!=null)break;}if(s_red.equals("yes"))//读取服务端的容,如果是yes执行Client1的类{showText1();dispose();new Client1();}else//读取服务端的容,如果不是yes执行showText()报错提醒!{showText();usernameTextField.setText(null);passwordField.setText(null);}}catch (Exception e1){e1.printStackTrace();}}public static void main(String[] args)throws IOException{Client s=new Client();}}class Client1 extends JFrame //登录界面的类包含查询,删除,增添,修改,返回等按钮!共4个按钮监听对象!{private JButton button1,button2,button3,button4,button5,button6;public Client1(){super.setTitle("登录界面");Container c=getContentPane();setLayout(null);button1=new JButton();button1.setText("查询");button1.setFont(new Font("黑色",Font.BOLD,20));button1.setBounds(50,50,120,50);button2=new JButton();button2.setText("删除");button2.setFont(new Font("黑色",Font.BOLD,20));button2.setBounds(220,50,120,50);button3=new JButton();button3.setText("增添");button3.setFont(new Font("黑色",Font.BOLD,20));button3.setBounds(50,150,120,50);button4=new JButton();button4.setText("修改");button4.setFont(new Font("黑色",Font.BOLD,20));button4.setBounds(220,150,120,50);button5=new JButton();button5.setText("显示");button5.setFont(new Font("黑色",Font.BOLD,20));button5.setBounds(50,250,120,50);button6=new JButton();button6.setText("返回");button6.setFont(new Font("黑色",Font.BOLD,20));button6.setBounds(220,250,120,50);button1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();new Client2();}});button2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();new Client4();}});button3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();new Client3();}});button4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();new Client5();}});button5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();new Client6();}});button6.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();new Client();}});c.add(button1);c.add(button2);c.add(button3);c.add(button4);c.add(button5);c.add(button6);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(400,450);setLocation(322,30);setVisible(true);}public static void main(String[] args)//throws IOException{new Client1();}}class Client2 extends JFrame implements ActionListener//查询类的功能是输入学号和密码,如果正确则返回成功的提醒,如果失败则返回失败的提醒,如果该学好存在,则返回存在的提醒!{private JLabel usernameLabel1;private JLabel usernameLabel2;private JLabel usernameLabel3;private JLabel usernameLabel4;private JLabel usernameLabel5;private JLabel usernameLabel6;private JLabel usernameLabel7;private JLabel usernameLabel8;private JTextField usernameTextField1;private JTextField usernameTextField2;private JTextField usernameTextField3;private JTextField usernameTextField4;private JTextField usernameTextField5;private JTextField usernameTextField6;private JTextField usernameTextField7;private JTextField usernameTextField8;private JButton button1;private JButton button2;private JLabel label1;public Client2(){super.setTitle("学生操作界面");Container c=getContentPane();c.setLayout(null);label1=new JLabel("欢迎进入学生查询系统!");label1.setBounds(40,20,400,30);label1.setFont(new Font("黑色",Font.BOLD,35));usernameLabel1=new JLabel("查询号");usernameLabel1.setBounds(70,110,200,30);usernameLabel1.setFont(new Font("黑色",Font.BOLD,30));usernameTextField1=new JTextField();usernameTextField1.setBounds(170,110,200,30);usernameTextField1.setFont(new Font("宋体",Font.BOLD,30));usernameLabel2=new JLabel("密码:");usernameLabel2.setBounds(70,150,200,30);usernameLabel2.setFont(new Font("黑色",Font.BOLD,32));usernameTextField2=new JTextField();usernameTextField2.setBounds(170,150,200,30);usernameTextField2.setFont(new Font("黑色",Font.BOLD,30));usernameLabel3=new JLabel("性别:");usernameLabel3.setFont(new Font("黑色",Font.BOLD,32));usernameLabel3.setBounds(70,190,200,30);usernameTextField3=new JTextField();usernameTextField3.setBounds(170,190,200,30);usernameTextField3.setFont(new Font("黑色",Font.BOLD,30));usernameLabel4=new JLabel("籍贯:");usernameLabel4.setBounds(70,230,200,30);usernameLabel4.setFont(new Font("黑色",Font.BOLD,30));usernameTextField4=new JTextField();usernameTextField4.setBounds(170,230,200,30);usernameTextField4.setFont(new Font("黑色",Font.BOLD,30));usernameLabel5=new JLabel("专业:");usernameLabel5.setBounds(70,270,200,30);usernameLabel5.setFont(new Font("黑色",Font.BOLD,30));usernameTextField5=new JTextField();usernameTextField5.setBounds(170,270,200,30);usernameTextField5.setFont(new Font("黑色",Font.BOLD,30));usernameLabel6=new JLabel(" :");usernameLabel6.setBounds(70,310,200,30);usernameLabel6.setFont(new Font("黑色",Font.BOLD,30));usernameTextField6=new JTextField();usernameTextField6.setBounds(170,310,200,30); usernameTextField6.setFont(new Font("黑色",Font.BOLD,30)); usernameLabel7=new JLabel(":");usernameLabel7.setBounds(70,350,200,30);usernameLabel7.setFont(new Font("黑色",Font.BOLD,30)); usernameTextField7=new JTextField();usernameTextField7.setBounds(170,350,200,30); usernameTextField7.setFont(new Font("宋体",Font.BOLD,30)); usernameLabel8=new JLabel("QQ:");usernameLabel8.setBounds(70,390,200,30);usernameLabel8.setFont(new Font("黑色",Font.BOLD,30)); usernameTextField8=new JTextField();usernameTextField8.setBounds(170,390,200,30); usernameTextField8.setFont(new Font("宋体",Font.BOLD,30));button1=new JButton();button1.setText("查询");button1.setFont(new Font("黑色",Font.BOLD,30));button1.setBounds(60,470,130,40);button2=new JButton();button2.setText("返回");button2.setFont(new Font("黑色",Font.BOLD,30));button2.setBounds(270,470,130,40);c.add(usernameLabel1);c.add(usernameLabel2);c.add(usernameLabel3);c.add(usernameLabel4);c.add(usernameLabel5);c.add(usernameLabel6);c.add(usernameLabel7);c.add(usernameLabel8);c.add(button1);c.add(button2);c.add(usernameTextField1);c.add(usernameTextField2);c.add(usernameTextField3);c.add(usernameTextField4);c.add(usernameTextField5);c.add(usernameTextField6);c.add(usernameTextField7);c.add(usernameTextField8);c.add(label1);button1.addActionListener(this);button2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();new Client1();}});setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(470,580);setLocation(322,30);setVisible(true);}public static void main(String[] args){Client2 s=new Client2();}private void showText(){String xie;xie=usernameTextField1.getText();JOptionPane.showMessageDialog(this.getParent(),"查询成功!"+xie); }private void showText2(){String xie;xie=usernameTextField1.getText();JOptionPane.showMessageDialog(this.getParent(),"该号不存在!"+xie);}public void actionPerformed(ActionEvent e){Socket ssocket = null;String str, st1,st2;final PrintWriter writer1;st1=usernameTextField1.getText();st2=usernameTextField2.getText();str="查询"+","+st1+","+st2;try{ssocket=new Socket("localHost",10000);writer1=new PrintWriter(ssocket.getOutputStream());if(!(st1.equals(null)) && !(st2.equals(null))){writer1.println(str);writer1.flush();}else if(st1.equals(null) || st2.equals(null)){writer1.println("error1");writer1.flush();}BufferedReader read=new BufferedReader(new InputStreamReader(ssocket.getInputStream()));String line=null;System.out.println("please wait.......");line=read.readLine();if(line.equals("Not1")){showText2();usernameTextField1.setText(null);usernameTextField2.setText(null);usernameTextField3.setText(null);usernameTextField4.setText(null);usernameTextField5.setText(null);usernameTextField6.setText(null);usernameTextField7.setText(null);usernameTextField8.setText(null);}else{String sarry[]=line.split(","); //usernameTextField1.setText(sarry[1]);usernameTextField2.setText(sarry[2]);usernameTextField3.setText(sarry[3]);usernameTextField4.setText(sarry[4]);usernameTextField5.setText(sarry[5]);usernameTextField6.setText(sarry[6]);usernameTextField7.setText(sarry[7]);usernameTextField8.setText(sarry[8]);showText();}}catch (Exception e1){e1.printStackTrace();}}}Server的源代码package socket;import java.io.*;import .*;import java.sql.*;public class Server //Server类通过引用来实现多线程{public static void main(String args[]){Thread1 s=new Thread1();s.start();}}class Thread1 extends Thread//多线程类{static ServerSocket server;static Socket ssocket;static BufferedReader reader1;static BufferedReader reader2;static String sql, databack;static Stringid,password,address,myname,class1,QQ,phone,sex,school;static ResultSet rs; static Statement stmt; staticConnection conn;public void run()//多线程的run()方法{try{final Stringdb_driver="sun.jdbc.odbc.JdbcOdbcDriver"; //连接多线程!final String db_url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=d:/my1.mdb";try{}catch(Exception e){e.printStackTrace();}try{server=new ServerSocket(10000);//建立端口System.out.println("服务器已经创建!等待客户机的.......");int flag=0;int flag1=0;while(true){ssocket=server.accept();//连接客户端System.out.println("完成!");reader1=new BufferedReader(newInputStreamReader(ssocket.getInputStream()));PrintWriter writer2=newPrintWriter(ssocket.getOutputStream());String s1=reader1.readLine();String sarry[]=s1.split(",");sql="select*from one";//连接数据库中的表名Class.forName(db_driver);conn=DriverManager.getConnection (db_url,"","");if(conn!=null){System.out.println("数据库已连接.....");}else{System.out.println("连接失败!");}stmt=conn.createStatement();rs=stmt.executeQuery(sql);if(sarry[0].equals("进入"))//获取客户端的进入功能{while(rs.next()){id=rs.getString("ID"); password=rs.getString("password");if(sarry[1].equals(id) && sarry[2].equals(password)){intnumber1=Integer.parseInt(id);intnumber2=Integer.parseInt(password);if(number1==201211016 && number2==16){flag=1;break;}}}if(flag==1){writer2.println("yes");writer2.flush();flag=0;}else{writer2.println ("no");writer2.flush();}stmt.close();conn.close();}else if(sarry[0].equals("查询"))//获取客户端的查询功能{while(rs.next()){school=rs.getString ("school");id=rs.getString("ID");password=rs.getString("password");sex=rs.getString("sex");address=rs.getString("address");class1=rs.getString("class");myname=rs.getString("myname");phone=rs.getString("phone");QQ=rs.getString("QQ");if(sarry[1].equals(id) && sarry[2].equals(password)){flag1=1;break;}}if(flag1==1){rs.next();String A[]={school,id,password,sex,address,class1,myname,phone,QQ};databack="";for(int i=0;i<=A.length-1;i++){databack+=A[i];if(i!=A.length-1)databack+=",";}writer2.println (databack);writer2.flush();flag1=0;}else{writer2.println("Not1");writer2.flush();}stmt.close();conn.close();}else if(sarry[0].equals("添加"))//获取客户端的添加功能{int boolean1=0;while(rs.next()){id=rs.getString("ID");if(sarry[1].equals(id)){boolean1=0;break;}else{String s="insert intoone(ID,password,sex,address,class,myname,phone,QQ) values (?,?,?,?,?,?,?,?)";PreparedStatement stat1=conn.prepareStatement(s);stat1.setString(1,sarry[1]);stat1.setString(2,sarry[2]);stat1.setString(3,sarry[3]);stat1.setString(4,sarry[4]);stat1.setString(5,sarry[5]);stat1.setString(6,sarry[6]);stat1.setString(7,sarry[7]);stat1.setString(8,sarry[8]);stat1.executeUpdate();boolean1=1;break;}}if(boolean1==1){writer2.println("Y");writer2.flush();boolean1=0;}else{writer2.println("No11");writer2.flush();}stmt.close();conn.close();}else if(sarry[0].equals("删除"))//获取客户端的删除功能{while(rs.next()){id=rs.getString("ID");if(sarry[1].equals(id)){Strings="delete from one where ID=?"; PreparedStatement stat1=conn.prepareStatement(s); stat1.setString(1,sarry[1]);stat1.executeUpdate();flag=1;}}if(flag==1){writer2.println("Y");writer2.flush();flag=0;}else{writer2.println("N");writer2.flush();}stmt.close();conn.close();}else if(sarry[0].equals("修改")){sex=sarry[3];address=sarry[4];class1=sarry[5];myname=sarry[6];phone=sarry[7];QQ=sarry[8];while(rs.next()){Stringid1=rs.getString("ID"); String password1=rs.getString("password");if(sarry[9].equals(id1) && sarry[10].equals(password1)){flag=1;break;}}if(flag==1){String id2=sarry[9];id=sarry[1];password=sarry[2];String s="update one setpassword=?,sex=?,address=?,class=?,myname=?,phone=?,QQ=?,ID=? where ID=?";PreparedStatement stat1=conn.prepareStatement(s);stat1.setString(1,password);stat1.setString(2,sex);stat1.setString(3,address);stat1.setString(4,class1); stat1.setString(5,myname); stat1.setString(6,phone);stat1.setString(7,QQ);stat1.setString(8,id);stat1.setString(9,id2);stat1.executeUpdate();writer2.println("Y2");writer2.flush();flag=0;}else{ writer2.println("N2");writer2.flush();}stmt.close();conn.close();}else if(sarry[0].equals("显示")){Statement stmt1 =conn.createStatement();ResultSet rs1 =stmt1.executeQuery("select * from one");databack="";while(rs1.next()){Stringid=rs1.getString("ID");Stringpassword=rs1.getString("password");Stringsex=rs1.getString("sex");Stringaddress=rs1.getString("address");Stringclass1=rs1.getString("class");Stringmyname=rs1.getString("myname");Stringphone=rs1.getString("phone");StringQQ=rs1.getString("QQ");String xie=id+","+password+","+sex+","+address+","+class1+","+myname+","+phone+","+QQ+",";databack+=xie;flag1=1;}if(flag1==1){writer2.println (databack);writer2.flush();flag1=0;}else{writer2.println ("Not1");writer2.flush();}stmt.close();conn.close();}}}catch(Exception e){}finally{System.out.println("发生错误,请重试!");}try{if(reader1!=null){reader1.close();}if(ssocket!=null){ssocket.close();}}catch(Exception e1){}}catch(Exception e){System.out.println("false");}}}运行截图总结和体会经过本人的努力,学生管理系统终于做完了,经过这次课程设计,自己总结了这个学生信息管理系统的一些问题,不过收获还是颇为丰富的,再有理论知识上结合实践,使我学到了更多。