?为套接字建立一个输入和输出流;
?根据服务器协议从套接字读入或向套接字写入;
?清除套接字和输入/输出流;
2)服务器端的编程流程:
?打开ServerSocket,创建一个服务器型套接字和一个普通套接字,服务器型套接字在指定端口为客户端请求的Socket服务;
?使用ServerSocket类的accept()方法使服务器型套接字处于监听状态并把监听结果返回给普通套接字;
?为该普通套接字创建输入和输出流;
?从输入和输出流中读入或写入字节流,进行相应的处理,并将结果返回给客户端;
?在客户端和服务器工作结束后关闭所有的对象,如服务器型的套接字,普通套接字,输入和输出流。
正是由于Java系统具有基于Socket的灵活通信机制,因而其应用程序能自由地打开和访问网络上的对象,就象在本地文件系统中一样。
(2)Applet之间的通信:
Applet之间的通信使用AppletContext类的getApplet()方法。
<appletcode=applet1.classwidth=200height=200name=first>
只要在程序中加入
Appletoneapplet=getAppletContext().getApplet(“first”);便可使用name为first的Applet中的方法了。
在该课题中大量使用了该种通信方法,因为专门同服务器端通信的Applet中包含接收信息方法和发送信息方法,所有客户端的Applet都要使用负责通信的Applet中的方法,所以客户端的Applet同负责通信的Applet必须进行通信。
6程序
//服务器端程序S.java负责与客户端通信
importjava.io.*;
importjava.net.*;
importjava.lang.*;
importT2;
classThreadEchoHandlerextendsThread//创建线程
{
T2theT2=newT2();
Socketincoming;
intcounter;
ThreadEchoHandler(Socketi,intc)
{incoming=i;

