基于Socket的编程实验

上传人:M****1 文档编号:455843212 上传时间:2023-05-08 格式:DOC 页数:9 大小:67KB
返回 下载 相关 举报
基于Socket的编程实验_第1页
第1页 / 共9页
基于Socket的编程实验_第2页
第2页 / 共9页
基于Socket的编程实验_第3页
第3页 / 共9页
基于Socket的编程实验_第4页
第4页 / 共9页
基于Socket的编程实验_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于Socket的编程实验》由会员分享,可在线阅读,更多相关《基于Socket的编程实验(9页珍藏版)》请在金锄头文库上搜索。

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

2、或数据设计性实验报告应含的主要内容:一、设计要求二、选择的方案三、所用仪器、设备四、实验方法与步骤五、实验结果与数据处理 六、结论(依据“设计要求”)七、所附实验输出的结果或数据* 封面左侧印痕处装订华 北 电 力 大 学 实 验 报 告一、实验目的及要求目的:通过该实验,掌握使用Java语言实现基于Socket的C/S编程方法,着重体会使用Socket进行通信时,通信双方通信协议的制定方法。要求: 1进行实验预习工作; 2准备实验必须的完整程序流程及源代码; 3上机编程,调试程序,得到实验结果; 4通过指导教师验收; 5写出实验报告二、所用仪器、设备两台安装Windows XP的PC机,在一

3、个局域网中,具有Java等编程环境Eclipse,JDK 1.60。三、实验原理编写一个基于C/S模式的数学服务器程序,并通过客户端进行访问。在这个分布式程序中,客户通过用户界面输入两个整型数组,并发送两个整型数组给数学服务器,数学服务器将两个数组相加,并将结果(作为一个数组)返回给客户。客户程序接收该结果数组,并将其输出到用户界面。程序应该包括如下内容:1 简单的客户端输入/输出界面负责接收用户输入的数组,以及运算结果的输出。 2读写数组到流Java API中没有现成的方法能够写整型数组到Socket,所以我们要写一个新类,其中的方法能够完成这项工作。同样,也没有现成的方法能够从Socket

4、中读一个整型数组。所以在我们的新类中应有两个方法:一个从 Socket中读整型数组;另一个写整型数组到Socket中。3算术客户程序它所做的就是打开一个Socket连接,一个输入流和一个输出流。客户程序发送两个整型数组到服务器,然后就等待服务器将结果数组发回。当客户程序接收到数组后,它输出数组到客户界面,之后,关闭IO流和Socket。4算术服务器程序运用有关线程编写知识,只需派生(或继承)Thread类的子类,并实现run()方法即可。run()方法实际上包括了服务程序所要进行的所有操作,但是线程只有在调用了start()方法后才会开始执行,并依次调用run()方法。四、 实验方法与步骤 J

5、ava 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 InputStream

6、Reader(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

7、 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

8、+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 Ser

9、verSocket(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(

10、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(); /刷新输出流,

11、使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()/将两数组进行加法运算,并返回结果五、实验结果与数据处理

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号