简介
Java是一个强大的面向对象开发语言,支持很多功能,比如,通过SOCKET编程达到的C/S通讯,基于WINDOW的编程,基于CONSOLE的编程,还有数据库连接,图象和声音编程等。 Java多用在基于INTERNET的网络编程上,创建一些嵌入到HTML页面中的APPLET小程序来实现。
在开始实际编写代码之前,为了使得概念更加清晰,需要提及几个重要的概念。广播信使(broadcast messenger)是要创建一个服务器,用来负责接收和响应来自客户机的网络消息。这个就叫做广播(Broadcasting),意思是发送数据包或者消息到所有的客户机。
这里使用的是服务器/客户机(C/S)框架,因为有一台计算机扮演服务器的角色来响应客户机的消息,所有其他的计算机都扮演客户机的角色,仅仅只是发送请求到服务器来执行它们的一些任务。Socket是连接计算机彼此的一个逻辑连接。要创建一个socket,需要提供一个端口号和一个主机IP地址/主机名。
多线程意味着一个进程的多个线程能够同时运行在分配给它们的同一个处理器上,就感觉好象只有进程在运行。所以,通过多线程技术,许多客户机可以连接服务器的同一个端口。线程是占有资源的进程或程序的一部分,比如文件,I/O等等,它们能够独立运行。
首先,我们创建一个服务器,创建一个server和client类,并import下面几个文件:
import Java.io.*;
import Java.net.*;
import Java.awt.*;
为server类设计一个interface使得从客户机到达的请求能够显示在一个window form里。一个简单server window设计如下:
CSDN_Dev_Image_2004-3-11931360.jpg" align=baseline border=0>
Figure 1: 一个服务器窗口,显示所有输入和输出,客户机名和IP地址的日志。
我们在窗口顶部创建了一个菜单,在中间创建了一个TextArea和一个Help对话框。我们设置窗口的容器布局管理器为流布局(FlowLayout)。这个流布局管理器以行来放置组件,当一行满后,自动将组件换到下一行。在Java中也有其他的布局管理器可用,比如Border layout manager, Grid layout manager, Card layout manager, Box layout manager, 和GridBag layout manager。下面给出代码:
public class ChatServer extends JFrame {