快速业务通道

Java网络编程之传输控制协议 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
是客户端运行的很好的系统。如果 你没有访问Unix服务器的权限,在第七部分我们给出了TCP daytime服务器程序 代码--有了这段代码客户端就可以运行了。

DaytimeClient的代码

import java.net.* import java.io.*; public class DaytimeClient { public static final int SERVICE_PORT = 13; public static void main(String args[]) { // 检查主机名称参数 if (args.length != 1) { System.out.println ("Syntax - DaytimeClient host"); return; } // 获取服务器程序的主机名称 String hostname = args[0]; try { // 获取一个连接到daytime服务的套接字 Socket daytime = new Socket (hostname, SERVICE_PORT); System.out.println ("Connection established"); // 在服务器程序停止的情况下设置套接字选项 daytime.setSoTimeout ( 2000 ); // 从服务器程序读取信息 BufferedReader reader = new BufferedReader ( new InputStreamReader (daytime.getInputStream() )); System.out.println ("Results : " + reader.readLine()); // 关闭连接 daytime.close(); } catch (IOException ioe) { System.err.println ("Error " + ioe); } } }

DaytimeClient是如何工作的

Daytime应用程序是很容易理解的,它使用了文章前面谈到的概念。建立套接 字、获取输入流,在很少的事件中(在连接时像daytime一样简单的服务器程序 失败)激活超时设置。不是连接已筛选过的流,而是把有缓冲的读取程序连接到 套接字输入流,并且把结果显示给用户。最后,在关闭套接字连接后客户端终止 。这是你可能得到的最简单的套接字应用程序了--复杂性来自实现的网络协议, 而不是来自具体网络的编程。

运行DaytimeClient

运行上面的应用程序很简单。简单地把运行daytime服务的计算机的主机名称 作为命令行参数指定并运行它就可以了。如果daytime服务器程序使用了非标准 的端口号(在后面会讨论),记得需要改变端口号并重新编译。

例如,如果服务器程序在本机上,为了运行客户端将使用下面的命令:

java DaytimeClient localhost

注意

Daytime服务器程序必须正在运行中,否则该客户端程序将不能建立连接。例 如如果你正在使用Wintel系统而不是Unix,那么你需要运行DaytimeServer(后 面会谈到)。

Java网络编程之传输控制协议(8)

时间:2010-12-16 天极 陶刚

六、ServerSocket类

服务器套接字是一种特定类型的套接字,它用于提供TCP服务。客户端套接字 绑定到本地计算机的任何空的端口,并且连接到特定服务器程序的端口和主机。 服务器套接字与它的差别是它们绑定到本地计算机的某个特定的端口,这样远程 客户端才能定位某种服务。客户端套接字连接只能连接到一台计算机,然而服务 器套接字能够满足多个客户端的请求。

它工作的方法很简单--客户端知道服务运行在某个特定的端口(通常端口号 是知名的,并且特定的协议使用特定的端口号,但是服务器程序也可能运行在非 标准的端口上)。它们建立连接,在服务器程序内部,连接会被接受。服务器程 序可以同时接受多个连接,在某个给定的时刻也可以选择只接受一个连接。某个 连接被接受后,它就表现为正常的套接字,形式为Socket对象--一旦你掌握了 Socket类,编写服务器程序就和编写客户端程序几乎一样简单了。服务器程序和 客户端程序的唯一区别是服务器程序帮定到特定的端口,使用ServerSocket对象 。ServerSocket对象就像创建客户端连接的工厂--你不必亲自建立Socket类的实 例。这些连接都模拟正常的套接字,因此你能够把输入和输出过滤流关联到这些 连接上。

1、建立ServerSocket

你在建立服务器套接字后,就应该把它绑定到某个本地端口并准备接受输入

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号