快速业务通道

Java编程那些事儿108——网络编程示例1 - 编程入门网

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

Java编程那些事儿108——网络编程示例1

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

13.3 网络编程示例

“实践出真知”,所以在进行技术学习时,还是需要进行很多的练习,才可以体会技术的奥妙,下面通过两个简单的示例,演示网络编程的实际使用。

13.3.1质数判别示例

该示例实现的功能是质数判断,程序实现的功能为客户端程序接收用户输入的数字,然后将用户输入的内容发送给服务器端,服务器端判断客户端发送的数字是否是质数,并将判断的结果反馈给客户端,客户端根据服务器端的反馈显示判断结果。

质数的规则是:最小的质数是2,只能被1和自身整除的自然数。当用户输入小于2的数字,以及输入的内容不是自然数时,都属于非法输入。

网络程序的功能都分为客户端程序和服务器端程序实现,下面先描述一下每个程序分别实现的功能:

1、客户端程序功能:

a)接收用户控制台输入

b)判断输入内容是否合法

c)按照协议格式生成发送数据

d)发送数据

e)接收服务器端反馈

f)解析服务器端反馈信息,并输出

2、服务器端程序功能:

a)接收客户端发送数据

b)按照协议格式解析数据

c)判断数字是否是质数

d)根据判断结果,生成协议数据

e)将数据反馈给客户端

分解好了网络程序的功能以后,就可以设计网络协议格式了,如果该程序的功能比较简单,所以设计出的协议格式也不复杂。

客户端发送协议格式:

将用户输入的数字转换为字符串,再将字符串转换为byte数组即可。

例如用户输入16,则转换为字符串“16”,使用getBytes转换为byte数组。

客户端发送“quit”字符串代表结束连接

Java编程那些事儿108——网络编程示例1(2)

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

服务器端发送协议格式:

反馈数据长度为1个字节。数字0代表是质数,1代表不是质数,2代表协议格式错误。

例如客户端发送数字12,则反馈1,发送13则反馈0,发送0则反馈2.

功能设计完成以后,就可以分别进行客户端和服务器端程序的编写了,在编写完成以后联合起来进行调试即可。

下面分别以TCP方式和UDP方式实现该程序,注意其实现上的差异。不管使用哪种方式实现,客户端都可以多次输入数据进行判断。对于UDP方式来说,不需要向服务器端发送quit字符串。

以TCP方式实现的客户端程序代码如下:

package example1; import java.io.*; import java.net.*; /** * 以TCP方式实现的质数判断客户端程序 */ public class TCPPrimeClient {  static BufferedReader br;  static Socket socket;  static InputStream is;  static OutputStream os;  /**服务器IP*/  final static String HOST = "127.0.0.1";  /**服务器端端口*/  final static int PORT = 10005;  public static void main(String[] args) {   init(); //初始化   while(true){    System.out.println("请输入数字:");    String input = readInput(); //读取输入    if(isQuit(input)){ //判读是否结束     byte[] b = "quit".getBytes();     send(b);     break; //结束程序    }    if(checkInput(input)){ //校验合法     //发送数据     send(input.getBytes());     //接收数据     byte[] data = receive();     //解析反馈数据     parse(data);    }else{     System.out.println("输入不合法,请重新输入!");    }   }   close();  //关闭流和连接  }  /**  * 初始化  */  private static void init(){   try {    br = new BufferedReader(    new InputStreamReader(System.in));    socket = new Socket(HOST,PORT);

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