欢迎来到天天文库
浏览记录
ID:14197264
大小:185.00 KB
页数:13页
时间:2018-07-26
《数据通信与计算机网络》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据通信与计算机网络--课程设计基于Socket的在线数据传输设计与实现一实验目的※基于Socket套接口,实现文件数据传输服务。目的掌握FTP协议、协议解析、基于Socket的编程技术及其文件传输服务的技术。※掌握用Socket编程实现聊天工具。※基于Socket套接口,实现网络聊天系统的设计与实现。目的掌握Socket的编程技术及网络服务的技术。※使用计算机网络的主要目的之一是资源共享,多数情况下,这种资源共享是通过两个独立运行在不同计算机上的程序实现:一个是服务器(Server)程序,提供资源和服务;另一个是客户(Client)程序,
2、使用服务器提供的资源与服务。通常,用户通过运行客户程序来使用服务器提供的资源或向服务器发送信息;而服务器程序则随时准备接收请求,当接到一个请求后,创建一个线程去完成对这个客户的服务。因此完成服务器端和客户端程序的开发。提高编程能力。※进一步了解计算机网络的通信原理,在了解理论的同进,应用实践论证理论的过程序。二设计内容v基于Socket套接口,实现HTTP文件数据传输服务。v掌握Web网络服务的设计方法。三实验环境l硬件环境:Windows7l软件环境:MyEclipse8.6和Mysql5.5四设计思想和实现流程设计思想:基于TCP/IP
3、和FTP的通信基本上都是利用Socket套接字进行数据通讯,程序一般分为服务器端和用户端两部分。五源程序服务器端publicclassServer{booleanstarted=false;ServerSocketss=null;//用来放用户的一个ListListclients=newArrayList();publicstaticvoidmain(String[]args){newChatServer().start();}//启动服务器publicvoidstart(){try{//启动一个Server
4、Socket,设定端口为8888ss=newServerSocket(8888);started=true;}catch(BindExceptione){System.out.println("端口使用中...");System.out.println("请关闭相关程序,并重新运行服务器");System.exit(0);}catch(IOExceptione){e.printStackTrace();}try{while(started){//开始监听端口,连接上一个客户端以后,启动一条线程,将客户端放在Lis中Sockets=ss.ac
5、cept();Clientc=newClient(s);System.out.println("aclientconnected!");newThread(c).start();clients.add(c);}}catch(IOExceptione){e.printStackTrace();}finally{try{ss.close();}catch(IOExceptione){e.printStackTrace();}}}classClientimplementsRunnable{privateSockets;ServerSocketss
6、=null;privateDataInputStreamdis=null;privateDataOutputStreamdos=null;privatebooleanbConnected=false;publicClient(Sockets){this.s=s;try{dis=newDataInputStream(s.getInputStream());dos=newDataOutputStream(s.getOutputStream());bConnected=true;}catch(IOExceptione){e.printStackT
7、race();}}publicvoidsend(Stringstr){try{dos.writeUTF(str);}catch(IOExceptione){e.printStackTrace();}}publicvoidrun(){try{while(bConnected){Stringstr=dis.readUTF();System.out.println(str);for(inti=0;i8、one){System.out.println("clientclosed!");}catch(IOExceptione){e.printStackTrace();}finall
8、one){System.out.println("clientclosed!");}catch(IOExceptione){e.printStackTrace();}finall
此文档下载收益归作者所有