java服务器端编程基础入门.docx
- 文档编号:17619656
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:21
- 大小:17.66KB
java服务器端编程基础入门.docx
《java服务器端编程基础入门.docx》由会员分享,可在线阅读,更多相关《java服务器端编程基础入门.docx(21页珍藏版)》请在冰点文库上搜索。
java服务器端编程基础入门
importjava.awt.*;
importjava.awt.event.*;
import.*;
importjava.io.*;
publicclassChatServer
{
publicstaticvoidmain(String[]args)
{
booleanstarted=false;//判断服务器是否启动了,先假定没有启动
ServerSocketss=null;
DataInputStreamdis=null;
try
{
ss=newServerSocket(8888);
started=true;//服务器已经启动了,设置started为true
while(started)
{//当服务器端启动时。
。
。
。
booleanbConnect=false;//判断服务器和客户端的连接是否已经建立,没有为false,连接成功返回true
Sockets=ss.accept();//accept()与readUTF()方法一样,都是一个阻塞式方法,如果没有收到连接请求,则一直等待。
。
。
。
。
bConnect=true;//连接成功,设置bConnect为true
System.out.println("一个连接已经建立!
");//--------------------------
dis=newDataInputStream(s.getInputStream());
while(bConnect)
{
Stringstr=null;
str=dis.readUTF();//如果客户端突然断开连接,该语句就会抛出异常EOFException,所以我们必须得对dis.readUTF();进行异常处理
//readUTF()是阻塞式方法,如果得不到数据,则继续等待,直到读取到数据为止
System.out.println("从客户端接受的数据是:
"+str);
}
}
}
catch(BindExceptione)
{
System.out.println("端口已被占用,其使用其他端口");
System.out.println("请关闭相关程序,重新运行!
");
System.exit(-1);
}
catch(EOFExceptione)
{
System.out.println("客户端已经断开连接!
");
}
catch(IOExceptione)
{
//e.printStackTrace();
System.out.println("服务器端读写错误!
");
}
finally
{
try
{
if(null!
=ss)//如果监听程序打开了,则关闭网络监听程序
{
ss.close();
ss=null;
}
if(null!
=dis)//如果输入流打开了,则关闭输入流
{
dis.close();
dis=null;
}
}
catch(Exceptione)
{
}
}
}
}
classA
{
intdivide(inta,intb)
{
intm=0;
try
{
m=a/b;
}
catch(ArithmeticExceptione)
{
System.out.printf("除数不能为零!
\n");
}
//System.out.printf("1111");
returnm;
}
}
publicclassTestExcep_1
{
publicstaticvoidmain(String[]args)
{
newA().divide(6,2);
//System.out.printf("2222");
}
}
publicclassTestExcep_2
{
publicstaticvoidmain(String[]args)
{
intm=99;
try
{
m=2;
System.out.printf("m=%d\n",m);
}
catch(Exceptione)
{
}
System.out.printf("m=%d\n",m);
}
}
importjava.util.Scanner;
importjava.util.InputMismatchException;
publicclassTestExcep_3
{
publicstaticvoidmain(String[]args)
{
inti;
Scannersc=newScanner(System.in);//System.in表示键盘
try
{
i=sc.nextInt();
System.out.printf("i=%d\n",i);
}
catch(InputMismatchExceptione)
{
System.out.printf("输入数据不合法,程序被终止!
\n");
}
}
}
classA
{
intdivide(inta,intb)
{
returna/b;
}
publicvoidf()
{
g();
}
publicvoidg()
{
divide(6,0);
}
}
publicclassTestExcep_4
{
publicstaticvoidmain(String[]args)
{
try
{
newA().f();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}
importjava.io.*;
classA
{
publicvoidf()throwsIOException
{
thrownewIOException();//throw抛出异常
}
publicvoidg()
{
thrownewArithmeticException();
}
}
publicclassTestExcep_5
{
publicstaticvoidmain(String[]args)//throwsIOException
{
Aaa=newA();
try
{
aa.f();
}
catch(IOExceptione)
{
}
}
}
classA
{
intdivide(inta,intb)
{
intm=0;
m=a/b;;
returnm;
}
}
publicclassTestExcep_6
{
publicstaticvoidmain(String[]args)
{
try
{
newA().divide(6,0);
}
catch(Exceptione)
{
System.out.printf("嘿嘿\n");
e.printStackTrace();
}
finally
{
System.out.printf("好久啊哈\n");
}
}
}
importjava.io.*;
classDivisorIsZeroExceptionextendsException
{
publicDivisorIsZeroException(Stringname)
{
super(name);
}
}
classA
{
publicintdivide(inta,intb)throwsDivisorIsZeroException
{
intm=0;
if(0==b)
thrownewDivisorIsZeroException("除数不能为零!
O(∩_∩)O哈哈~");
else
m=a/b;
returnm;
}
}
publicclassTestExcep_7
{
publicstaticvoidmain(String[]args)//throwsIOException
{
Aaa=newA();
try
{
aa.divide(6,0);
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}
importjava.io.*;
classA
{
publicvoidf()throwsArithmeticException
{
//thrownewArithmeticException();//throw抛出异常
}
}
publicclassTestExcep_8
{
publicstaticvoidmain(String[]args)//throwsIOException
{
Aaa=newA();
try
{
aa.f();
}
catch(ArithmeticExceptione)
{
System.out.printf("haha");
}
}
}
classPerson{
publicintage;
}
publicclassTestNullPointerException{
publicstaticvoidmain(String[]args){
Personp=null;
System.out.println(p.age);
}
}
classDivisorIsZeroExceptionextendsException
{
publicDivisorIsZeroException(StringerrorMessage)
{
super(errorMessage);
}
}
classA
{
intdivide(inta,intb)throwsDivisorIsZeroException
{
//try
//{
//if(0==b)
//thrownewDivisorIsZeroException("除数不能为零!
");
//}
//catch(DivisorIsZeroExceptione)
//{
//e.printStackTrace();
//}
if(0==b)
thrownewDivisorIsZeroException("除数不能为零!
");
intm=a/b;
returnm;
}
}
publicclassTestA
{
publicstaticvoidmain(String[]args)
{
Aaa=newA();
//aa.divide(6,2);
}
}
/*
2009年1月21日21:
55:
05
子类覆盖了基类方法时,
子类方法抛出异常的范围不能大于基类方法抛出的异常范围
子类方法可以不抛出异常,也可以只抛出基类方法的部分异常
但不可以抛出基类方法以外的异常
*/
//自定义异常A
classAextendsException
{
}
//自定义异常B
classBextendsException
{
}
//自定义异常C
classCextendsException
{
}
classM
{
voidf()throwsA,B
{
}
}
classNextendsM
{
voidf()throwsA,B//可以throwsA或B,也可以throwsA,B也可以不throws,但不可以throwsC即"子类覆盖了基类方法时,子类方法抛出异常的范围不能大于基类方法抛出的异常范围"
{
}
}
classTest
{
publicvoidk(Mmm)
{
try
{
mm.f();
}
catch(Aaa)
{
}
catch(Bbb)
{
}
}
}
classTestExtendExce
{
publicstaticvoidmain(String[]args)
{
Mm=newM();
Nn=newN();
//System.out.println("1111");
}
}
/*
在JDK1.6中的运行结果是:
--------------------------
1111
--------------------------
*/
classA
{
publicStringtoString()
{
return"哈哈";
}
}
publicclassTestObject
{
publicstaticvoidmain(String[]args)
{
Aaa=newA();
System.out.printf("%s\n",aa.toString());
}
}
classDian
{
publicintx,y;
publicDian(intx,inty)
{
this.x=x;
this.y=y;
}
publicStringtoString()
{
return"["+x+","+y+"]";//[3,5]
}
}
publicclassTestPoint
{
publicstaticvoidmain(String[]args)
{
Diand=newDian(3,5);
//System.out.printf("%s",d);
System.out.println(d);
}
}
classA
{
publicvoidf()
{
System.out.printf("AAAA\n");
}
}
classBextendsA
{
publicvoidf()
{
System.out.printf("BBBB\n");
}
publicvoidg()
{
}
}
publicclassTestPoly_1
{
publicstaticvoidmain(String[]args)
{
Aaa=newA();
Bbb=newB();
//aa=bb;
aa.f();
Bbb2=(B)aa;
}
}
classA
{
publicinti;
publicA(inti)
{
this.i=i;
}
//publicbooleanequals(Objectobj)
//{
//Aaa=(A)obj;
//
//if(this.i==aa.i)//if(当前对象的i和obj代表的i相等)
//returntrue;
//else
//returnfalse;
//}
}
publicclassTestStringEquals_2
{
publicstaticvoidmain(String[]args)
{
Aaa1=newA
(2);
Aaa2=newA
(2);
System.out.println(aa1.equals(aa2));//true
}
}
/*
2009年3月14日9:
34:
11
先catch子类异常再catch父类异常
如果先catch父类异常再catch子类异常,则编译时会报错
*/
classAextendsException
{
}
classBextendsA
{
}
classCextendsB
{
}
classM
{
publicvoidcompare(inti,intj)throwsA,B
{
if(i>j)
thrownewA();
else
thrownewB();
}
}
publicclassTestTryCatch
{
publicstaticvoidmain(String[]args)
{
Mmm=newM();
try
{
pare(-4,1);
}
catch(Bbb)
{
System.out.println("左边不能小于右边");
}
catch(Aaa)
{
System.out.println("左边不能大于右边");
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 服务器端 编程 基础 入门