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

教师:段鹏飞

实验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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值