用java編寫簡單UDP網路通訊程式

來源:互聯網
上載者:User

java中封裝了大量的socket API,為編寫網路通訊程式提供了極大的方便.
在電腦網路的學習中,大家都已熟練掌握了TCP/UDP的基本原理,在此不在贅述.僅給出接收端和發送端的原始碼,供大家討論和批評.
發送端代碼如下:
//只要稍加改進,即可發送資料
import java.io.*;
import java.lang.*;
import java.net.*;
public class uclient
{
 private DatagramSocket cli;
 private DatagramPacket pac;
 private byte sb[];
 private String sen;
 public uclient()
 {
  Init();
 }
 public void Init()
 {
  try
  {
   //指定連接埠號碼,避免與其他應用程式發生衝突
   cli=new DatagramSocket(10002);
   sb=new byte[1024];
   sen="UDP方式發送資料";
   sb=sen.getBytes();
   pac=new DatagramPacket(sb,sb.length,InetAddress.getByName("localhost"),10005);
   cli.send(pac);
   }
   catch(SocketException se)
   {
     se.printStackTrace();
   }
   catch(IOException ie)
   {
     ie.printStackTrace();
   }
 }
 public static void main(String args[])
 {
  new uclient();
 }
}
接收端資料:
//加以改進代碼,可以改變接收方式
import java.io.*;
import java.lang.*;
import java.net.*;
public class userve
{
 private DatagramSocket ser;
 private DatagramPacket pac;
 private byte rb[];
 private String rev;
 public userve()
 {
   Init();
 }
 public void Init()
 {
  try
  {
   ser=new DatagramSocket(10005);
   rb=new byte[1024];
   pac=new DatagramPacket(rb,rb.length);
   rev="";
   int i=0;
   while(i==0)//無資料,則迴圈
   { 
     ser.receive(pac);
     i=pac.getLength();
     //接收資料
     if(i>0)
     {
      //指定接收到資料的長度,可使接收資料正常顯示,開始時很容易忽略這一點
      rev=new String(rb,0,pac.getLength());
      System.out.println(rev);
      i=0;//迴圈接收
     }   
   } 
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }
 public static void main(String args[])
 {
   new userve();
 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.