欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    网络编程 - Socket.ppt

    • 资源ID:70020020       资源大小:53KB        全文页数:14页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    网络编程 - Socket.ppt

    网络编程-SocketC/S结构网络通讯流程o服务器开始监听o客户端申请连接o服务器接受连接(此时连接已经建立)o服务器与客户端开始通讯通讯条件o服务器IP或主机名或域名n通过IP来定位要连接的服务器所在位置n127.0.0.1表示本机IPnLocalhost表示本机o服务器监听的服务端口n通过IP找到要连接的服务器主机,但是服务器上运行着多个程序都监听着网络n而每个程序都监听着不同的端口n任何程序都必须通过端口来与网络通讯n这时,必须通过端口来定位服务器上要连接的程序通讯条件服务器 单用户opublic static void main(String args)nServerSocket serverSocket=null;nInputStream is=null;nInputStreamReader isr=null;nBufferedReader br=null;nSocket socket=null;ntry oserverSocket=new ServerSocket(6789);/开始监听osocket=serverSocket.accept();/等待接收数据ois=socket.getInputStream();/获得通向Socket的低端流oisr=new InputStreamReader(is);/高端流绑定低端流obr=new BufferedReader(isr);/缓冲流绑定高端流owhile(true)/循环读取nString line=br.readLine();/接收数据nif(null=line)/如果客户端已经断开break;nnSystem.out.println(line);on catch(Exception e)e.printStackTrace();n finally otry is.close();catch(Exception e)e.printStackTrace();otry isr.close();catch(Exception e)e.printStackTrace();otry br.close();catch(Exception e)e.printStackTrace();otry socket.close();catch(Exception e)e.printStackTrace();otry serverSocket.close();catch(Exception e)e.printStackTrace();no客户端opublic static void main(String args)nSocket socket=null;nOutputStream os=null;nPrintStream ps=null;ntry osocket=new Socket(“127.0.0.1”,6789);/申请连接oos=socket.getOutputStream();/获得通向Socket的低端流ops=new PrintStream(os);/高端流绑定低端流ops.println(“把犯人给我押上!”);/发送数据ops.flush();n catch(Exception e)e.printStackTrace();n finally otry ps.close();catch(Exception e)e.printStackTrace();otry os.close();catch(Exception e)e.printStackTrace();otry socket.close();catch(Exception e)e.printStackTrace();no服务器 多用户ooserverSocket=new ServerSocket(6789);/开始监听owhile(true)/循环接收用户请求nsocket=serverSocket.accept();/等待接收数据nis=socket.getInputStream();nisr=new InputStreamReader(is);nbr=new BufferedReader(isr);nwhile(true)oString line=br.readLine();oif(null=line)nbreak;ooSystem.out.println(line);nnsocket.close();oo服务器 多用户 并发o原理:n每次acept到一个Socket,都启动一个线程,把这个Socket交给这个线程进行处理n每个Socket象征着一个客户端,因为我们认为,我们将每个客户交给一个线程来处理n这种线程称为“客户线程”服务器 多用户 并发opublic class ClientThread extends Thread nprivate Socket socket=null;npublic ClientThread(Socket socket)othis.socket=socket;nnpublic void run()oInputStream is=null;oInputStreamReader isr=null;oBufferedReader br=null;otry nis=socket.getInputStream();nisr=new InputStreamReader(is);nbr=new BufferedReader(isr);nwhile(true)String line=br.readLine();if(null=line)break;System.out.println(line);no catch(Exception e)e.printStackTrace();o finally ntry is.close();catch(Exception e)e.printStackTrace();ntry isr.close();catch(Exception e)e.printStackTrace();ntry br.close();catch(Exception e)e.printStackTrace();ntry socket.close();catch(Exception e)e.printStackTrace();ono服务器 多用户 并发opublic static void main(String args)nServerSocket serverSocket=null;nInputStream is=null;nInputStreamReader isr=null;nBufferedReader br=null;nSocket socket=null;ntry oserverSocket=new ServerSocket(6789);/开始监听owhile(true)nsocket=serverSocket.accept();/等待接收数据nClientThread clientThread=new ClientThread(socket);nclientThread.start();/启动一个客户线程on catch(Exception e)e.printStackTrace();n finally otry is.close();catch(Exception e)e.printStackTrace();otry isr.close();catch(Exception e)e.printStackTrace();otry br.close();catch(Exception e)e.printStackTrace();otry socket.close();catch(Exception e)e.printStackTrace();otry serverSocket.close();catch(Exception e)e.printStackTrace();no客户端 多用户 并发o下面是模拟10个并发客户端的程序:opublic static void main(String args)nfor(int i=0;i 10;i+)oSocket socket=null;oOutputStream os=null;oPrintStream ps=null;otry nsocket=new Socket(127.0.0.1,6789);nos=socket.getOutputStream();nps=new PrintStream(os);nps.println(把犯人给我押上!);nps.flush();o catch(Exception e)e.printStackTrace();o finally ntry ps.close();catch(Exception e)e.printStackTrace();ntry os.close();catch(Exception e)e.printStackTrace();ntry socket.close();catch(Exception e)e.printStackTrace();ono总结o服务器:n用循环实现多客户n用多线程实现并发思索o已经可以,多用户,并发了o现在如果要求对同一个客户,都要求:n多任务n并发o怎么办?o提示:n与多用户并发一样o用循环实现多任务o用多线程实现并发

    注意事项

    本文(网络编程 - Socket.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开