文档详情

实验三多线程Socket的通信.docx

发布:2017-07-01约1.57千字共3页下载文档
文本预览下载声明
实验三:多线程Socket的通信班级:计科F1203 姓名:于文静学号:201216010230 实验目的:通过将Socket通信和多线程的知识结合应用,掌握基于多线程的通信设计方法。实验内容:创建客户端Socket;创建服务器端Socket;建立基于多线程的服务器段监听和数据处理机制;Socket的启动和管理。实验步骤:package java1;//服务器端程序import java.net.ServerSocket;import java.net.Socket;publicclass MultiServer {publicstaticvoid main(String args[]){ServerSocket server=null;int count=0;boolean listening=true;try{try{server=new ServerSocket(4700);System.out.println(Server starting....);}catch(Exception e){System.out.println(can not listen to: + e);}while(listening){Socket socket=server.accept();count++;System.out.println(Accept +count+Client!);Thread read=new ReadThread(socket,[client+count+]);read.start();}server.close();}catch(Exception e){System.out.println(Error: + e);}}}package java1;//创建类ReadThread,实现多线程的处理import java.io.BufferedReader;importjava.io.InputStreamReader;import java.net.Socket;publicclass ReadThread extends Thread {Socket socket=null;String client;public ReadThread(Socket socket,String client){this.socket=socket;this.client=client;}public ReadThread(Socket socket,String side,int clientnum){this(socket,side);}publicvoid run(){try{String line=;BufferedReader is=new BufferedReader(newInputStreamReader(socket.getInputStream()));while(line!=null!line.equals(bye)){line=is.readLine();System.out.println(client+read: +line);}is.close();socket.close();}catch(Exception e){System.out.println(Error: + e);}}}实验结果:实验体会:通过本次实验,我了解到客户/服务器(C/S)的工作方式及原理,本实验是针对于多个客户端,一个服务器的,实现了计算机之间的多线程Socket的通信,不过,在实验的过程中,我也出现过一些错误,在创建客户端Socket对象时,因书写错误而导致错误,还有就是需要创建类ReadThread,实现多线程的处理.后来经过改正,运行正确,实现了多个客户与服务器之间的通信.
显示全部
相似文档