教师:段鹏飞

实验5-实验目的

了解Java网络编程基础知识;掌握java.net包中关于网络的基本类及其属性和方法;掌握基于Socket的客户和服务器编程方法.

实验内容(必做)

编写程序,将前面课程所编写的档案管理系统从单机版改编成为客户机/服务器模式,实现档案文件在客户机和服务器之间的上传、下载.完成功能:1、建立服务器工程2、客户端选择一个文件上传后,客户端与服务器建立连接,将文件发送到服务器,服务器将文件接收并保存,同时将文件信息和保存的路径写入数据库.3、用户可以通过客户端文件列表进行文件下载操作(下载时,客户端将文件ID发给服务器,服务器通过ID在数据库中查找到相应的文件路径信息,然后读取文件,通过网络将文件发送给客户端).

实验内容(选做)

1、客户端不能连接数据库,只有通过服务器端程间接访问数据库.2、客户端通过服务器端获取文件的列表信息,并在客户端界面上进行列表显示.3、客户端通过服务器完成对用户的增、删、查、改.提示:1、在网络这一块,开一个端口就好了,网络通信采用"请求-应答"的思想,也就是说,客户端向服务器提交一个请求,服务器生成相应的结果,返回给客户端.2、采用对象串行化的思想,定义一个类进行数据传输.(参考课本235页)

对象串行化(仅供参考)

Socket应用

客户端与服务器端的实现

客户端

服务器端

*  8.5

Socket

.  8.5

Socket

创建服务器(端口号)

定义数据成员

服务器等待网络连接

建立socket流

读客户

端信息

向用户发出一个字符串

创建Socket实例

定义数据成员

建立socket流读socket流(接收并显示)

送用户名给服务器

关闭流

waiting

for

user

127.0.0.1

1111

1111

login:

connetcting

client...

java

提示用户登录成功

读socket流User

:java

Login

successful

*  Socket应用

ServerSocket

s  =  null;String

hello

=  "Hello

World!";try

{s  =  new

ServerSocket(5432);}

catch(IOException

e)  {System.out.println(e);System.exit(1);}while(true)

{try

{Socket

cs  =  s.accept();OutputStream

out

=  cs.getOutputStream();DataOutputStream

dos

=  new

DataOutputStream(out);dos.writeUTF(hello);out.close();cs.close();}

catch(IOException

e)  {  System.out.println(e);

}}  me.whut.edu.cnServerSocket

LocalhostSocket

OutputStream

InputStream

InputStream

OutputStream

接收连接

打开输出流

写入输出流

关闭输出流

关闭连接

监听端口

*  Socket应用

对客户端对Socket进行读写-实例

import

java.net.*;import

java.io.*;public

class

SimpleClient

{public

static

void

main(String

args[])

{Socket

s  =  new

Socket("me.whut.edu.cn",

5432);InputStream

in  =  s.getInputStream();DataInputStream

dis

=  new

DataInputStream(in);String

st  =  dis.readUTF();System.out.println(st);in.close();s.close();}}

me.whut.edu.cnServerSocket

LocalhostSocket

OutputStream

InputStream

InputStream

OutputStream

段鹏飞java_面向对象与多线程综合实验-网络编程相关推荐

  1. 武汉理工大学-Java面向对象与多线程综合实验-(7)多线程基础

    实验目标 本实验为此系列的最后一次实验,目标在实验 (6) 的基础上增加多线程功能,使得档案系统能允许多个用户同时进行登录操作,同时实现线程之间必要的同步互斥功能. 模块解析 此次实验模块与实验 (6 ...

  2. 武汉理工大学桂林老师java_武汉理工大学-Java面向对象与多线程综合实验-(1)封装、继承与多态...

    实验目标 实现一个档案管理系统的用户管理模块的初步模型.功能包括:密码机制的登录界面:普通用户对自身信息的查询.修改:管理员用户对其他用户信息的增添.删除.修改. 模块解析 用户分为:Administ ...

  3. [面向对象与多线程综合实验]数据挖掘系统

    开源项目:wut-data-mining-system 开发时间:2020.11 - 2020.12 文章目录 一.快速开始 二.系统简介 三.需求分析 四.任务分配 五.功能要求 六.项目结构 七. ...

  4. python的多线程和多进程网络编程

    二十八.python的多线程和多进程网络编程 线程和进程关系: 进程是具有独立功能的程序,进程是系统进行资源分配和调度的一个独立单位 线程是进程的一个实体,是cpu调度的基本单位,它是比进程更小的能独 ...

  5. Java语言与系统设计笔记(II:从多线程开发到网络编程)

    ch6.Java多线程开发 6.1 进程与线程的概念 进程(Process):操作系统中能够"同时"运行的多个应用程序(QQ.浏览器.Word.WPS). 线程(Thread):一 ...

  6. python异步多线程框架_Python网络编程中的服务器架构(负载均衡、单线程、多线程和同步、异步等)。...

    这篇文章主要介绍服务器架构. 网络服务需要面对两个挑战.第一个问题是核心挑战,要编写出能够正确处理请求并构造合适响应的代码. 第二个挑战是如何将网络代码部署到随系统自动启动的Windows服务或者是U ...

  7. reactor多线程模型_网络编程模型的演进之路

    在没有IO多路复用的模型的情况下,为了支持高并发采取以下网络模型 一:阻塞IO+多线程 client连接服务器,服务器有一个线程阻塞的调用accept,accept接收到连接后,创建一个线程来读写读写 ...

  8. python 面向对象编程tcp_python面向对象、类、socket网络编程

    类和对象 python3统一了类与类型的概念:类==类型:从一组对象中提取相似的部分就是类:特征与技能的结合体就叫做对象: 类的功能: 初始实例化: 属性引用: 1.数据属性: 2.函数属性: 对于一 ...

  9. 西工大java高级网络编程_奥鹏西工大16春《JAVA高级网络编程》平时作业

    西工大16春<JV高级网络编程>平时作业 一.单选题(共 25 道试题,共 100 分.) 1. 假设以tomt为w服务器,在hllopp应用中有一个hllo.jsp,它的文件路径如下: ...

最新文章

  1. 05移动端布局基础之flex弹性布局项目实战(携程移动端首页)
  2. tomcat和nginx的使用
  3. 面向云数据库,超低延迟文件系统PolarFS诞生了
  4. python元组操作_Python 列表和元组操作
  5. 通信行业力推零信任标准,蔷薇灵动微隔离首批获证
  6. 淘宝自动发货申请资格
  7. delphi 调用php接口_《细说PHP》第四版 样章 第23章 自定义PHP接口规范 5
  8. 替换分隔符 ^p, 或者是回车
  9. 小D课堂 - 新版本微服务springcloud+Docker教程_5-07 断路器dashboard监控仪表
  10. linux命令dstat,linux系统监控:dstat命令
  11. 使用Advanced Installer打包安装程序
  12. 基于STM32F1的HMC5883L电子罗盘驱动——妈妈从此再也不担心我迷路了
  13. PS里面如何批处理图片
  14. 安装cad提示command_win7系统安装CAD软件失败总是提示“错误1327”怎么解决
  15. 浅谈代理服务器的作用
  16. 【Python】模块(Module)、包(Package)以及相对导入(relative import)和绝对导入(absolute import)
  17. idea 回退merge_详解IDEA git分支回退指定的历史版本
  18. linux系统运行flash3d,在Linux上运行STM32,快来试试!
  19. matlab六轴直线插补代码
  20. ubuntu22.04图文安装流程

热门文章

  1. 今天,我想为产品经理说说话
  2. Python编程PTA题解——查验身份证
  3. 全球及中国布瑞加替尼片行业供需现状及发展前景预测报告(2022-2027)
  4. java感谢地说说_感恩心情说说
  5. 软驱光碟安装linux系统,无光驱和软驱安装debian的方法
  6. 演化计算基准函数(Python版)
  7. 欧盟的数据保护政策对美国的商贸意味着什么?
  8. C++新手入门学习教程
  9. 6.[dubbo源码解析]-属性配置
  10. android 开发环境ppt,Android开发环境简介.ppt