快速业务通道

Java编程那些事儿103——网络编程技术2 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
码是:

Socket socket = ss.accept();

该代码实现的功能是获得当前连接到服务器端的客户端连接。需要说明的是accept和前面IO部分介绍的read方法一样,都是一个阻塞方法,也就是当无连接时,该方法将阻塞程序的执行,直到连接到达时才执行该行代码。另外获得到的连接将使用服务器端其它未使用的端口号和客户端进行连接,使得服务器端端口不会被一直占用。由于每个获得的连接都会占用服务器端的一个端口号,这样使用TCP类型的网络进行编程时,同时可以支持的最大连接数量受到端口数量的限制,最大为65535个。

连接获得以后,后续的编程就和客户端的网络编程类似了,这里获得的Socket类型的连接就和客户端的网络连接一样了,只是服务器端需要首先读取发送过来的数据,然后进行逻辑处理以后再发送给客户端,也就是交换数据的顺序和客户端交换数据的步骤刚好相反。这部分的内容和客户端很类似,所以就不重复了,如果还不熟悉,可以参看下面的示例代码。

最后,在服务器端通信完成以后,关闭服务器端连接。实现的代码为:

ss.close();

Java编程那些事儿103——网络编程技术2(3)

时间:2010-03-20 csdn 陈跃峰

这就是基本的TCP类型的服务器端编程步骤。下面以一个简单的echo服务实现为例子,介绍综合使用示例。echo的意思就是“回声”,echo服务器端实现的功能就是将客户端发送的内容再原封不动的反馈给客户端。实现的代码如下:

package tcp; import java.io.*; import java.net.*; /** * echo服务器 * 功能:将客户端发送的内容反馈给客户端 */ public class SimpleSocketServer {  public static void main(String[] args) {   ServerSocket serverSocket = null;   Socket socket = null;   OutputStream os = null;   InputStream is = null;   //监听端口号   int port = 10000;   try {    //建立连接    serverSocket = new ServerSocket(port);    //获得连接    socket = serverSocket.accept();    //接收客户端发送内容    is = socket.getInputStream();    byte[] b = new byte[1024];    int n = is.read(b);    //输出    System.out.println("客户端发送内容为:" + new String(b,0,n));    //向客户端发送反馈内容    os = socket.getOutputStream();    os.write(b, 0, n);   } catch (Exception e) {     e.printStackTrace();   }finally{     try{      //关闭流和连接      os.close();      is.close();      socket.close();      serverSocket.close();     }catch(Exception e){}   }  } }

在该示例代码中建立了一个监听当前计算机10000号端口的服务器端Socket连接,然后获得客户端发送过来的连接,如果有连接到达时,读取连接中发送过来的内容,并将发送的内容在控制台进行输出,输出完成以后将客户端发送的内容再反馈给客户端。最后关闭流和连接对象,结束程序。

在控制台下面编译和运行该程序的命令和客户端部分的类似。

这样,就以一个很简单的示例演示了TCP类型的网络编程在Java语言中的基本实现,这个示例只是演示了网络编程的基本步骤以及各个功能方法的基本使用,只是为网络编程打下了一个基础,下面将就几个问题来深入介绍网络编程深层次的一些知识。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号