最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于Socket的编程实验

来源:动视网 责编:小OO 时间:2025-09-23 23:02:31
文档

基于Socket的编程实验

华北电力大学实验报告||实验名称基于Socket的C/S编程实验课程名称网络与分布计算||专业班级:软件0702学生姓名:学号:成绩:指导教师:翟学明实验日期:2010-12-5(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm,右2.1cm;字体:宋体小四号,1.25倍行距。)验证性、综合性实验报告应含的主要内容:一、实验目的及要求二、所用仪器、设备三、实验原理四、实验方法与步骤五、实验结果与数据处理六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进
推荐度:
导读华北电力大学实验报告||实验名称基于Socket的C/S编程实验课程名称网络与分布计算||专业班级:软件0702学生姓名:学号:成绩:指导教师:翟学明实验日期:2010-12-5(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm,右2.1cm;字体:宋体小四号,1.25倍行距。)验证性、综合性实验报告应含的主要内容:一、实验目的及要求二、所用仪器、设备三、实验原理四、实验方法与步骤五、实验结果与数据处理六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进
华北电力大学

实 验 报 告

|

|

        

实验名称       基于Socket的C/S编程实验                

    课程名称           网络与分布计算                                

|

|

                 专业班级: 软件0702     学生姓名: 

                 学    号:    成    绩:

指导教师:  翟学明       实验日期:2010-12-5  

   

(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm, 右2.1cm;字体:宋体小四号,1.25倍行距。)

验证性、综合性实验报告应含的主要内容:

一、实验目的及要求

二、所用仪器、设备

三、实验原理

四、实验方法与步骤

五、实验结果与数据处理

  六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)

七、所附实验输出的结果或数据

设计性实验报告应含的主要内容:

一、设计要求

二、选择的方案

三、所用仪器、设备

四、实验方法与步骤

五、实验结果与数据处理

  六、结论(依据“设计要求”)

七、所附实验输出的结果或数据

* 封面左侧印痕处装订

一、实验目的及要求

目的:通过该实验,掌握使用Java语言实现基于Socket的C/S编程方法,着重体会使用Socket进行通信时,通信双方通信协议的制定方法。

要求: 1.进行实验预习工作;

 2.准备实验必须的完整程序流程及源代码;

 3.上机编程,调试程序,得到实验结果;

  4.通过指导教师验收;

 5.写出实验报告

二、所用仪器、设备

两台安装Windows XP的PC机,在一个局域网中,具有Java等编程环境Eclipse,JDK 1.60。

三、实验原理

编写一个基于C/S模式的数学服务器程序,并通过客户端进行访问。在这个分布式程序中,客户通过用户界面输入两个整型数组,并发送两个整型数组给数学服务器,数学服务器将两个数组相加,并将结果(作为一个数组)返回给客户。客户程序接收该结果数组,并将其输出到用户界面。程序应该包括如下内容:

1.简单的客户端输入/输出界面负责接收用户输入的数组,以及运算结果的输出。

 2.读/写数组到流

Java API中没有现成的方法能够写整型数组到Socket,所以我们要写一个新类,其中的方法能够完成这项工作。同样,也没有现成的方法能够从Socket中读一个整型数组。所以在我们的新类中应有两个方法:一个从 Socket中读整型数组;另一个写整型数组到Socket中。

3.算术客户程序

它所做的就是打开一个Socket连接,一个输入流和一个输出流。客户程序发送两个整型数组到服务器,然后就等待服务器将结果数组发回。当客户程序接收到数组后,它输出数组到客户界面,之后,关闭I/O流和Socket。

4.算术服务器程序

运用有关线程编写知识,只需派生(或继承)Thread类的子类,并实现run()方法即可。run()方法实际上包括了服务程序所要进行的所有操作,但是线程只有在调用了start()方法后才会开始执行,并依次调用run()方法。

四、实验方法与步骤

   Java socket 编程过程:

1.客户端程序都必须遵首下面的基本的步骤:

(1)建立客户端socket连接.

(2)得到socket的读和写的流.

(3)利用流.

(4)关闭流.

(5)关闭socket.

 public void  SendSock()

 {

     try{

         TalkServer tServer=new TalkServer();

         tServer.start();//启动服务器线程

           //向本机的4700端口发出客户请求

         Socket socket=new Socket("127.0.0.1",4700);

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

         //由系统标准输入设备构造BufferedReader对象

     PrintWriter os=new PrintWriter(socket.getOutputStream());

       //由Socket对象得到输出流,并构造PrintWriter对象

  BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

     //由Socket对象得到输入流,并构造相应的BufferedReader对象

          String readline1=txt1.getText();

          String  readline2=txt2.getText();

          String  readline=readline1+";"+readline2;         

          os.println(readline);           

          os.flush(); //刷新输出流,使Server马上收到该字符串            

           String getString=is.readLine();

           txt3.setText(getString);       

            os.close(); //关闭Socket输出流

             is.close(); //关闭Socket输入流

           socket.close(); //关闭Socket

      }

      catch(Exception e1) {

    System.out.println("Error"+e1); //出错,则打印出错信息            

     }

}

2.所有的服务器都要有以下的基本的步骤:

(1)建立一个服务器socket并开始监听.

(2)使用accept()方法取得新的连接. 

(3)建立输入和输出流.

(4)在已有的协议上产生会话. 

(5)关闭客户端流和socket.

(6)回到第二步或者到第七步.

(7)关闭服务器socket.

重复和并发服务器 

public class TalkServer extends Thread {

 public TalkServer() {

     super();

}

    public void run() {

         try{

             ServerSocket server=null;

               try{

                       server=new ServerSocket(4700);

            //创建一个ServerSocket在端口4700监听客户请求

                      }

               catch(Exception e) {

                      System.out.println("can not listen to:"+e);

                    //出错,打印出错信息

                      }

                    Socket socket=null;

                       try{

                               socket=server.accept();

                         }

                       catch(Exception e) {

                             System.out.println("Error."+e);

                                  //出错,打印出错信息

                           }

                String line;

       BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

                      //由Socket对象得到输入流,并构造相应的BufferedReader对象

     PrintWriter os=new PrintWriter(socket.getOutputStream());                           

                //在标准输出上打印从客户端读入的字符串

                 line=is.readLine();

            AddTowArray addTowArray=new AddTowArray();                                      

          String result=addTowArray.StrToSubStr(line);  

              os.println(result);

             //向客户端输出该字符串

               os.flush();

        //刷新输出流,使Client马上收到该字符串

       System.out.println("Server:"+line);

       System.out.println("Server:"+result);                                   

           os.close(); 

          is.close(); 

        socket.close(); 

           server.close(); 

         }

          catch(Exception e) {

        System.out.println("Error."+e);

           //出错,打印出错信息

           }

     }

}

3.   读/写数组到流的处理方法

 

思路:从客户端得到两个符合自定义协议的数组字符串,通过自定义类AddTwoArray 对字符串进行解析,解析成两个数组后进行相应的操作,然后将结果转换成字符串,以便于服务器端的数据返回。

 AddTwoArray的方法

   public String StrToSubStr(String temp);//将字符串分割成子串

   public void SubStrToArr(String sub1,String sub2);//将两个子串转换成数组

public String SumAll()//将两数组进行加法运算,并返回结果

五、实验结果与数据处理

文档

基于Socket的编程实验

华北电力大学实验报告||实验名称基于Socket的C/S编程实验课程名称网络与分布计算||专业班级:软件0702学生姓名:学号:成绩:指导教师:翟学明实验日期:2010-12-5(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm,右2.1cm;字体:宋体小四号,1.25倍行距。)验证性、综合性实验报告应含的主要内容:一、实验目的及要求二、所用仪器、设备三、实验原理四、实验方法与步骤五、实验结果与数据处理六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top