|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你通过从书的数量和开发周期及运行速度来证明:net网页编程和ruby要比java简单。
//文件名:ChatClient.java
importjava.net.*;
importjava.io.*;
/**
*<p>Title:收集谈天吧</p>
*<p>Description:这是一个利用数据报通信体例的谈天程序的客户端</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:ChatClient.java</p>
*@version1.0
*/
publicclassChatClient{
privateDatagramSockets;
privateInetAddresshostAddress;
privatebyte[]buf=newbyte[1000];
privateDatagramPacketdp=newDatagramPacket(buf,buf.length);
/**
*<br>办法申明:机关器,这里完成吸收用户输出和与服务器通信
*<br>输出参数:
*<br>前往范例:
*/
publicChatClient(){
try{
//利用机关器,创立利用本机任何可用端口的数据包Socket
s=newDatagramSocket();
//猎取当地IP
hostAddress=InetAddress.getByName("localhost");
System.out.println("Clientstart............");
while(true){
StringoutMessage="";
//读取输出
BufferedReaderstdin =newBufferedReader(newInputStreamReader(System.in));
try{
outMessage=stdin.readLine();
}catch(IOExceptionie){
System.err.println("IOerror!");
}
//假如输出“bye”则暗示加入程序
if(outMessage.equals("bye"))break;
StringoutString="Clientsay:"+outMessage;
byte[]buf=outString.getBytes();
//打包数据,发送数据
DatagramPacketout=newDatagramPacket(buf,buf.length,hostAddress,ChatServer.PORT);
s.send(out);
//守候服务器前往
s.receive(dp);
Stringrcvd="rcvdfrom"+dp.getAddress()+","+dp.getPort()+
":"+newString(dp.getData(),0,dp.getLength());
System.out.println(rcvd);
}
}catch(UnknownHostExceptione){
System.out.println("Can;topensocket");
System.exit(1);
}catch(SocketExceptione){
System.out.println("Can;topensocket");
e.printStackTrace();
System.exit(1);
}catch(IOExceptione){
System.err.println("Communicationerror");
e.printStackTrace();
System.exit(1);
}catch(Exceptione){
System.err.println("Communicationerror");
e.printStackTrace();
System.exit(1);
}
System.out.println("ChatClientover");
}
/**
*<br>办法申明:主办法
*<br>输出参数:
*<br>前往范例:
*/
publicstaticvoidmain(String[]args){
newChatClient();
}
}
importjava.net.*;
importjava.io.*;
importjava.util.*;
/**
*<p>Title:收集谈天吧</p>
*<p>Description:利用数据报创立的谈天服务器</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:ChatServer.java</p>
*@version1.0
*/
publicclassChatServer{
staticfinalintPORT=4000;//设置服务端口
privatebyte[]buf=newbyte[1000];
privateDatagramPacketdgp=new DatagramPacket(buf,buf.length);
privateDatagramSocketsk;
/**
*<br>办法申明:服务端机关器,完成读取用户输出和通信
*<br>输出参数:
*<br>前往范例:
*/
publicChatServer(){
try{
//实例化数据报
sk=newDatagramSocket(PORT);
System.out.println("Serverstart.................");
while(true){
//守候吸收
sk.receive(dgp);
//猎取吸收信息
Stringrcvd=newString(dgp.getData(),0,dgp.getLength())+
",fromaddress:"+dgp.getAddress()+
",port:"+dgp.getPort();
System.out.println(rcvd);
StringoutMessage="";
//读取输出
BufferedReaderstdin =newBufferedReader(newInputStreamReader(System.in));
try{
outMessage=stdin.readLine();
}catch(IOExceptionie){
System.err.println("IOerror!");
}
StringoutString="Serversay:"+outMessage;
//拷贝字符到缓存
byte[]buf=outString.getBytes();
//打包数据,发送复书息。
DatagramPacketout=newDatagramPacket(buf,buf.length,dgp.getAddress(),dgp.getPort());
sk.send(out);
}
}catch(SocketExceptione){
System.err.println("Can |
|