快速业务通道

使用Java实现数据报通讯过程 - 编程入门网

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

import java.applet.*;    import java.awt.*;    import java.net.*;    import java.io.*;    public final class javaCommunicationClient extends Applet    {     private Label label1,label2 ;     private Panel panel1,panel2;     private TextField textfield;     private TextArea textarea;     private DatagramSocket sendSocket,receiveSocket;//声明发送数据报Socket和接收数据报Socket     private DatagramPacket sendPacket,receivePacket;//声明发送数据报文包和接收数据报文包    public void init()     {      setBackground(Color.gray);      setLayout(new BorderLayout());//设置一个布局管理器      panel1=new Panel();      panel1.setLayout(new BorderLayout());//在容器中放置布局管理器      label1=new Label("通话纪录");      textarea=new TextArea(10,20);//文本显示区域      textarea.setText("欢迎您!");      panel1.add("North",label1);//将标签添加到布局管理器中      panel1.add("Center",textarea);      add("North",panel1);      label2=new Label("发言:");//创建另一个容器      panel2.add("Center",label2);      textfield=new TextField(20);      textfield.setText("");      panel2.add("South",textfield);      add("Center",panel2);      show();     }    public void start()     {      waitForPackets();     }    public void waitForPackets()    /*方法waitForPacket用来监听来自于服务器的数据报,当获得数据报后,在文本显示区域显示出来    */    {     try     {      sendSocket=new DatagramSocket();//实例化一个发送数据报Socket对象      receiveSocket= new DatagramSocket(5001);//实例化一个接收数据报Socket对象,以5001为端口      } catch (SocketException e)//捕获异常     {      textarea.appendText("不能打开数据报Socket,或数据报Socket无法与指定端口连接!");     }     while (true)      {       try       {        byte buf[]=new byte[100];        receivePacket=new DatagramPacket(buf,buf.length);//实例化一个接收数据报文包对象        receiveSocket.receive(receivePacket);//以receivePacket为参数,接受文包        textarea.appendText("\n服务器:\t");        byte[] data=receivePacket.getData();        String receivedString=new String(data);        textarea.appendText(receivedString);//将接收到的数据报文报中的数据显示出来       } catch(IOException e)      {       textarea.appendText("网络通讯出现错误,问题在"+e.toString());      }     }    }    public boolean action(Event e,Object o)     {      try       {textarea.appendText("\n客户端:");       String string=o.toString();       textarea.appendText(string);       byte[] databyte=new byte[100];       string.getBytes(0,string.length(),databyte,0);       sendPacket=new DatagramPacket(databyte,string.length(),InetAddress.getByName("202.38

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