快速业务通道

用Java Socket制作广播信使程序 - 编程入门网

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

用Java Socket制作广播信使程序

时间:2010-09-13

简介

Java是一个强大的面向对象开发语言,支持很多功能,比如,通过Socket编程达到的C/S通讯,基于Windows的编程,基于CONSOLE的编程,还有数据库连接,图象和声音编程等。 Java多用在基于INTERNET的网络编程上,创建一些嵌入到HTML页面中的Applet小程序来实现。

在开始实际编写代码之前,为了使得概念更加清晰,需要提及几个重要的概念。广播信使(broadcast messenger)是要创建一个服务器,用来负责接收和响应来自客户机的网络消息。这个就叫做广播(Broadcasting),意思是发送数据包或者消息到所有的客户机。

这里使用的是服务器/客户机(C/S)框架,因为有一台计算机扮演服务器的角色来响应客户机的消息,所有其他的计算机都扮演客户机的角色,仅仅只是发送请求到服务器来执行它们的一些任务。Socket是连接计算机彼此的一个逻辑连接。要创建一个socket,需要提供一个端口号和一个主机IP地址/主机名。

多线程意味着一个进程的多个线程能够同时运行在分配给它们的同一个处理器上,就感觉好象只有进程在运行。所以,通过多线程技术,许多客户机可以连接服务器的同一个端口。线程是占有资源的进程或程序的一部分,比如文件,I/O等等,它们能够独立运行。

Java代码解释

首先,我们创建一个服务器,创建一个server和client类,并import下面几个文件:

import java.io.*; import java.net.*; import java.awt.*;

为server类设计一个interface使得从客户机到达的请求能够显示在一个window form里。一个简单server window设计如下:

用Java Socket制作广播信使程序 - 编程入门网

Figure 1: 一个服务器窗口,显示所有输入和输出,客户机名和IP地址的日志。

用Java Socket制作广播信使程序(2)

时间:2010-09-13

我们在窗口顶部创建了一个菜单,在中间创建了一个TextArea和一个Help对话框。我们设置窗口的容器布局管理器为流布局(FlowLayout)。这个流布局管理器以行来放置组件,当一行满后,自动将组件换到下一行。在JAVA中也有其他的布局管理器可用,比如Border layout manager, Grid layout manager, Card layout manager, Box layout manager, 和GridBag layout manager。下面给出代码:

public class ChatServer extends JFrame {  public ChatServer(String title) //CONSTRUCTOR TO INITIALIZE THE  //ChatServer CLASS  {   output = new TextArea (15,40); //output IS A TextArea COMPONENT   //OF THE ChatServer CLASS   output.setEditable (false);   output.setFont(f);   output.setForeground(Color.blue);   setTitle(title); //TO SET THE TITLE OF THE CLIENT WINDOW   setJMenuBar(menuBar); //TO INITIALIZE THE MENU BAR ON THE WINDOW   JMenu fileMenu = new JMenu("File");   JMenu colorMenu = new JMenu("Color");   JMenu helpMenu = new JMenu("Help");   //Main menu Shortcuts:   fileMenu.setMnemonic(''F'');   colorMenu.setMnemonic(''C'');   helpMenu.setMnemonic(''H'');   //About Dialog init:   aboutItem = new JMenuItem("About");   //aboutItem.addActionListener((ActionListener)this);   helpMenu.add(aboutItem);   addMenuItem(helpMenu,aboutAction = new AboutAction("About"));   //Initialize menu items:   menuBar.add(fileMenu);   menuBar.add(colorMenu);   menuBar.add(helpMenu);   enableEvents(AWTEvent.WINDOW_EVENT_MASK);   class AboutAction extends AbstractAction //CREATES AN ABSTRACT   //INTERNAL CLAS

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