TCP聊天程序及多线程TCP.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
客户端的Socket   下面是一个典型的创建客户端Socket的过程。    try{      Socket socket=new Socket(127.0.0.1,4700);      //127.0.0.1是TCP/IP协议中默认的本机地址    }catch(IOException e){      System.out.println(Error:+e);    } 这是最简单的在客户端创建一个Socket的一个小程序段,也是使用Socket进行网络通讯的第一步。 服务器端的ServerSocket   下面是一个典型的创建Server端ServerSocket的过程。   ServerSocket server=null;   try {      server=new ServerSocket(4700);      //创建一个ServerSocket在端口4700监听客户请求   }catch(IOException e){      System.out.println(can not listen to :+e);   }   Socket socket=null;   try {     socket=server.accept();     //accept()是一个阻塞的方法,一旦有客户请求,它就会返回一个Socket对象用于同客户进行交互   }catch(IOException e){     System.out.println(Error:+e);   }   以上的程序是Server的典型工作模式,只不过在这里Server只能接收一个请求,接受完后Server就退出了。实际的应用中总是让它不停的循环接收,一旦有客户请求,Server总是会创建一个服务线程来服务新来的客户,而自己继续监听。程序中accept()是一个阻塞函数,所谓阻塞性方法就是说该方法被调用后,将等待客户的请求,直到有一个客户启动并请求连接到相同的端口,然后accept()返回一个对应于客户的socket。这时,客户方和服务方都建立了用于通信的socket,接下来就是由各个socket分别打开各自的输入/输出流。 打开输入/出流   类Socket提供了方法getInputStream ()和getOutStream()来得到对应的输入/输出流以进行读/写操作,这两个方法分别返回InputStream和OutputSteam类对象。为了便于读/写数据,我们可以在返回的输入/输出流对象上建立过滤流,如DataInputStream、DataOutputStream或PrintStream类对象,对于文本方式流对象,可以采用InputStreamReader和OutputStreamWriter、PrintWirter等处理。   例如:   PrintStream os=new PrintStream(new BufferedOutputStreem(socket.getOutputStream()));   DataInputStream is=new DataInputStream(socket.getInputStream());   PrintWriter out=new PrintWriter(socket.getOutStream(),true);   BufferedReader in=new ButfferedReader(new InputSteramReader(Socket.getInputStream())); 输入输出流是网络编程的实质性部分,具体如何构造所需要的过滤流,要根据需要而定,能否运用自如主要看对Java中输入输出部分掌握如何。 关闭Socket   每一个Socket存在时,都将占用一定的资源,在Socket对象使用完毕时,要其关闭。关闭Socket可以调用Socket的Close()方法。在关闭Socket之前,应将与Socket相关的所有的输入/输出流全部关闭,以释放所有的资源。而且要注意关闭的顺序,与Socket相关的所有的输入/输出该首先关闭,然后再关闭Socket。   os.close();   is.close();   socket.close();   尽管Java有自动回收机制,网络资源最终是会被释放的。但是为了有效的利用资源,建议 按照合理的顺序主动释放资源。 简单的Client/Server程序设计   下面我们给出一个用Socket实现的客户和服务器交互的典型的C/S结构的演示程序, 通过仔细阅读该程序,会对前面所讨论的各个概念有更深刻的认识。程序的意义请参考注释。   ??  1. 客户端程序   import java.io.*;  

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档