tcp聊天程序与多线程tcp

tcp聊天程序与多线程tcp

ID:798961

大小:57.03 KB

页数:19页

时间:2017-09-05

tcp聊天程序与多线程tcp_第1页
tcp聊天程序与多线程tcp_第2页
tcp聊天程序与多线程tcp_第3页
tcp聊天程序与多线程tcp_第4页
tcp聊天程序与多线程tcp_第5页
资源描述:

《tcp聊天程序与多线程tcp》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、客户端的Socket  下面是一个典型的创建客户端Socket的过程。   try{     Socketsocket=newSocket("127.0.0.1",4700);     //127.0.0.1是TCP/IP协议中默认的本机地址   }catch(IOExceptione){     System.out.println("Error:"+e);   }这是最简单的在客户端创建一个Socket的一个小程序段,也是使用Socket进行网络通讯的第一步。服务器端的ServerSocket  下面是一个典型的创建Server端ServerSocket的过程。  Ser

2、verSocketserver=null;  try{     server=newServerSocket(4700);     //创建一个ServerSocket在端口4700监听客户请求  }catch(IOExceptione){     System.out.println("cannotlistento:"+e);  }  Socketsocket=null;  try{    socket=server.accept();    //accept()是一个阻塞的方法,一旦有客户请求,它就会返回一个Socket对象用于同客户进行交互  }catch(IOExce

3、ptione){    System.out.println("Error:"+e);  }  以上的程序是Server的典型工作模式,只不过在这里Server只能接收一个请求,接受完后Server就退出了。实际的应用中总是让它不停的循环接收,一旦有客户请求,Server总是会创建一个服务线程来服务新来的客户,而自己继续监听。程序中accept()是一个阻塞函数,所谓阻塞性方法就是说该方法被调用后,将等待客户的请求,直到有一个客户启动并请求连接到相同的端口,然后accept()返回一个对应于客户的socket。这时,客户方和服务方都建立了用于通信的socket,接下来就是由各

4、个socket分别打开各自的输入/输出流。打开输入/出流  类Socket提供了方法getInputStream()和getOutStream()来得到对应的输入/输出流以进行读/写操作,这两个方法分别返回InputStream和OutputSteam类对象。为了便于读/写数据,我们可以在返回的输入/输出流对象上建立过滤流,如DataInputStream、DataOutputStream或PrintStream类对象,对于文本方式流对象,可以采用InputStreamReader和OutputStreamWriter、PrintWirter等处理。  例如:  PrintS

5、treamos=newPrintStream(newBufferedOutputStreem(socket.getOutputStream()));  DataInputStreamis=newDataInputStream(socket.getInputStream());  PrintWriterout=newPrintWriter(socket.getOutStream(),true);  BufferedReaderin=newButfferedReader(newInputSteramReader(Socket.getInputStream()));输入输出流是网络

6、编程的实质性部分,具体如何构造所需要的过滤流,要根据需要而定,能否运用自如主要看对Java中输入输出部分掌握如何。关闭Socket  每一个Socket存在时,都将占用一定的资源,在Socket对象使用完毕时,要其关闭。关闭Socket可以调用Socket的Close()方法。在关闭Socket之前,应将与Socket相关的所有的输入/输出流全部关闭,以释放所有的资源。而且要注意关闭的顺序,与Socket相关的所有的输入/输出该首先关闭,然后再关闭Socket。  os.close();  is.close();  socket.close();  尽管Java有自动回收机制

7、,网络资源最终是会被释放的。但是为了有效的利用资源,建议按照合理的顺序主动释放资源。简单的Client/Server程序设计  下面我们给出一个用Socket实现的客户和服务器交互的典型的C/S结构的演示程序,通过仔细阅读该程序,会对前面所讨论的各个概念有更深刻的认识。程序的意义请参考注释。     1.客户端程序  importjava.io.*;  importjava.net.*;  publicclassTalkClient{    publicstaticvoidmain(Stringargs

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。