欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于Socket的CS程序开发.docx

    • 资源ID:718418       资源大小:31.78KB        全文页数:5页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Socket的CS程序开发.docx

    诲陈工学旌计算机工在考底实验报告书课程名:计算机网络题目:基于Socket的C7S程序开发班级:学号:姓名:.实数据传为开发输的一序二实成绩:指导教师:批阅时间:2023年10月30日日,允卜算出它们的和、差、积、商,最后送回客户端。三.实验步骤与源程序源程序:1、效劳器端:.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassClientextendsFrameimplementsRunnable,ActionListenerDataInputStrearnin=null;DataOutputStreaniout=null;Panelp;1.abelIabl1lab2,lab3;TextFieldtfl,tf2,tf3;Buttonconnection,send;Socketsocket=null;Threadthread;TextAreatext;publicClient()SUPer("客户端:");SetLayout(newFlowLayoutO);setSize(300,250);设置窗口大小SetLocation(200,200);/设置窗口显示位置SetResizableCfalse);p=newPanel();p. SetLayout(null);p.SetBounds(0,O,300,250);addWindowListener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)System,exit(0););text=newTextAreaO;labl=newLabe1("输入IP地址:");IabLSetBounds(5,5,60,25);lab2=newLabeI("第个数字:");lab2.setBounds(5,35,60,25);lab3=newLabe1("第二个数字:");lab3.SetBounds(5,65,60,25);tfl=newTextField(IO);tfl.setBounds(80,5,100,25);tf2=newTextField(IO);tf2.setBounds(80,35,100,25);tf3=newTextField(IO);tf3.setBounds(80,65,100,25);connection=newBUttOn(连接效劳器");connection.setBounds(200,5,90,25);connection.addActionListener(this);send=newBUttOn("发送数据");send.setBounds(200,65,90,25);send.addActionListener(this);text=newTextArea(200,50);text.setBounds(5,100,290,HO);q. add(labl);p.add(Iab2);p.add(Iab3);r. add(tf1);p.add(tf2);p.add(tf3);s. add(connection);p.add(send);t. add(text);add(p);SetVisible(true);socket=newSocket();thread=newThread(this);publicvoidactionPerformed(ActionEvente)if(e.getSource()=connection)InetAddressaddress=null;InetSocketAdclresssocketAddress=null;try"请求和效劳器建立套接字连接:if(socket.IsConnected()elseaddress=InetAddress,getByName(tf1.getText();socketddress=newInetSocketAddress(address,8755);socket,connect(socketAddress,2000);/*等待2秒中in=newDataInputStreani(socket,getInputStream();out=newDataOutputStreani(socket.getOutputStream();send.SetEnabled(true);JOptionPane.ShoWMeSSageDialog(this,"连接成功!","成功!",JOptionPane.INFORMATION-MESSAGE);thread,start();catch(IOExceptionex)System,out.printIn(*timeout*+ex);System,out.printIn(socketAddress.getHostName()+":*+socketAddress.getPort();JOptionPane.ShowMessageDialogCthis,z*连接超时!","错误!",JOptionPane.ERRORJfESSAGE);newClient();dispose();if(e.getSource()=send)Strings=tf2.getText()+","+tf3.getTextO;if(s!=ull)tryout.WriteUTF(s);catch(IOExceptionel)publicvoidrunOStrings=null;while(true)trys=in.readUTF();text,append(s+"n");catch(IOExceptione)text,append("与效劳器己断开");break;publicstaticvoidmain(Stringargs)newClient();)2、客户端importjava.io.*;.*;importjava.util.*;publicclassServerpublicServer()ServerSocketserver=null;Serverthreadthread;Socketyou=null;while(true)tryserver=newServerSocket(8755);catch(IOExceptionel)System,out.Println("正在监听");/ServerSocket对象不能重复创立trySystem,out.PrintIn("等待客户呼叫");you=server.accept();System.OUt.printIn("已连接到客户");System,out.PrintIn("客户的地址:"+you.getInetAddressO);catch(IOExceptione)SySteni.out.println("正在等待客户");if(you!=null)newServerthread(you),start();/为每个客户启动一个专门的线程publicstaticvoidmain(Stringargs)newServer();classServer_threadextendsThreadSocketsocket;DataOutputStreamout=null;DataInputStreamin=null;Strings=nu11;booleanquesion=false;Serverthread(Sockett)socket=t;tryout=newDataOutPUtStrecLm(socket,getOutputStream();in=newDataInputStream(socket,getInputStreamO);catch(IOExceptione)publicvoidrun()while(true)doublea=newdouble2;inti=0;trys=inreadUTFO;/堵塞状态,除非读取到信息quesion=false;StringTokenizerfenxi=newStringTokenizer(s,",");while(fenxi.hasMoreTokens()&&quesion=false)Stringtemp=fenxi.nextToken();tryai=Double.valuef(temp).doubleValue();i+;catch(NumberFormatExceptione)out.WriteUTF("请输入数字字符");quesion=true;if(quesion=false)doubles=a0+al;doublep=a0-al;doubleq=a0*al;doubler=a0al;out.writeUTF(*+a0+*÷*+al+*=*+s);out.writeUTF(*+a0+*-*+al÷*=*+p);out.writeUTF(*"+a0+"*"+al+"="+q);out.writeUTF(*"+a0+""+al+"="+r);System.OUt.println("客服端数据:"+a0+"和"+al);System,out.PrintIn("完成客户端运算");catch(IOExceptione)System,out.Println("客户离开");return;四.测试数据与实验结果客户端程序运行结果链接效劳器客户端进行四种运算效劳器端的运行结果:1.JaVa语言中,效劳器端和客户端套接字对象类相同吗?如不同,有何差异?答:不相同,客户端使用Socket,效劳器端使用ServerSocketo2 .程序编写完毕并编译后,先运行客户端程序,还是先运行效劳器端程序?为什么?答:先运行效劳器端,如果效劳器端不运行或后运行,客户端运行后无法与效劳器端建立连接,就不能用到效劳器端的效劳。3 .Java语言中如何使用UDP协议进行数据传输的?答:JaVa里UDP协议传送的方式细节已经封装了到类DatagramSOCket里,只要用DatagramSocket的对象进行传输数据就可以了,底层实现是应该依靠本地C语言程序来完成的实验体会通过这次试验让我更加深刻的体会和理解了从效劳端和客户端的联系和工作方式,稳固了传输层与套接字的根本知识,能够利用套接字实现面向连接的数据传输,学会简单的客户/效劳器程序的开发,希望在以后的学习中更多的去学习和实践关于客户端和效劳器东西。

    注意事项

    本文(基于Socket的CS程序开发.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开