|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)ServerSocket类
Socket类暗示的是客户真个socket。不管甚么时分,只需你想毗连到一个远程服务器的使用,你都要构建一个socket。假如你想实行一个服务器使用程序,好比HTTP服务大概FTP服务的程序,那末你必要利用分歧的路子。由于你的服务器必需一向是开机闲置,以是它不晓得甚么时分客户机试图来毗连它。
这个时分,必要利用java.net.ServerSocket类。它会完成一个服务器socket。一个服务器socket会守候来自客户真个毗连。一旦它吸收到一个毗连哀求,它就会创立一个Socket实例来处置和客户端通信的成绩。
要创立一个服务器socket,可使用四种ServerSocket类机关办法中的一种来完成。你必要制订服务器socket监听的IP地点和端口。典范的,IP地点假如是127.0.0.1,意味着服务器socket将监听当地呆板。这个被监听的IP地点被以为是一种绑定地点。serversocket的另外一个主要属性是它的backlog属性,它是在serversocket回绝毗连哀求前,可以承受的毗连哀求的最年夜行列长度。
ServerSocket类的机关函数之一以下:
publicServerSocket(intport,intbackLog,InetAddressbindingAddress);
关于这个机关函数而言,绑定地点必需是java.net.InetAddress的一个实例。一个复杂的举措是经由过程挪用它的静态办法getByName来机关一个InetAddres对象。该办法来一个包括主机名的字符串参数:
InetAddress.getByName("127.0.0.1");
上面一行代码机关一个ServerSocket,它监听当地呆板的8080端口,backlog设置为1。
newServerSocket(8080,1,InetAddress.getByName("127.0.0.1"));
一旦有了一个ServerSocket实例,能够经由过程挪用accept办法来告知它守候出去的毗连哀求。这个办法只要在有一个毗连哀求时才前往。它前往的是Socket类的实例。这个Socket对象可以发送和承受来自客户端使用的字撙节,就是第一节所讲到的socket类。实践上,accept是本文说起的独一一个在使用中利用的办法。
Application使用
我们的web服务器使用是ex01.pyrmont包的一部分,包括三个类:
HttpServer
Request
Response
这个使用的出口(静态main办法)是HttpServer类。它创立了一个HttpServer实例来挪用它的await办法。就象这个办法名所表示的,await办法在一个指定的端口守候一个HTTP哀求,并处置它们,然后发送回应给客户端。它坚持守候形态,直到收到一个shutdown命令。(命令名await来取代wait的缘故原由是wait是System.Object类中的一个用于线程方面的主要办法)
使用仅仅只发送静态资本,好比来自特定目次的HTML和图片文件。不撑持静态包头(好比日期大概cookie)。
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。 |
|