posts - 37, comments - 8, trackbacks - 0, articles - 0
          1、InetAddress類
          InetAddress類沒有提供構(gòu)造函數(shù),只可以調(diào)用一些靜態(tài)方法來(lái)生成。
          2、使用URL方式進(jìn)行網(wǎng)絡(luò)連接:

          import java.io.*;
          import java.net.*;
          public class Test
          {
           public static void main(String args[])
           {
            try
            {
             URL url=new URL("http://www.baidu.com");
             BufferedReader br=new BufferedReader(
              new InputStreamReader(url.openStream()));
             String str;
             while((str=br.readLine())!=null)
             {
              System.out.println(str);
             }

              br.close();
            }
            catch (Exception e)
            {
             e.printStackTrace();
            }
            
           }
          }

          3、基于TCP的socke編程:
                  圖解:

          code:
          服務(wù)器端:

          import java.io.*;
          import java.net.*;
          public class xServer
          {
           public static final int PORT=4500;
           public static void main(String args[])throws IOException
           {
            ServerSocket s=new ServerSocket(PORT);
            System.out.println("Begin:"+s);
            try
            {
             Socket socket=s.accept();
             try
             {
              System.out.println("Connection accepted:"+socket);
              BufferedReader in=new BufferedReader(
               new InputStreamReader(socket.getInputStream()));
              PrintWriter out=new PrintWriter(new BufferedWriter(
               new OutputStreamWriter(socket.getOutputStream())),true);
              while(true)
              {
               String st=in.readLine();
               if(st.equals("END"))break;
               System.out.println("Recived:"+st);
               out.println("OK:");
              }
             }
             finally
             {
              System.out.println("closing...");
              socket.close();
             }
            }
            finally
            {
             s.close();
            }
           }

          }

          客戶端:
          import java.io.*;
          import java.net.*;
          public class xClient
          {
           public static void main(String[] args)throws IOException
           {
            InetAddress addr=InetAddress.getByName("localhost");
            System.out.println("addr="+addr);
            Socket socket =new Socket(addr,xServer.PORT);
            try
            {
             System.out.println("socket="+socket);
             BufferedReader in=new BufferedReader(
               new InputStreamReader(socket.getInputStream()));
             PrintWriter out=new PrintWriter(new BufferedWriter(
               new OutputStreamWriter(socket.getOutputStream())),true);
             for(int i=0;i<5;i++)
             {
              out.println(i+"Hello!");
              String st=in.readLine();
              System.out.println(">>"+st);
             }
             out.println("END");
            }
            finally
            {
             System.out.println("closing...");
             socket.close();
            }
           }
          }

          4、基于UDP的Socket編程:
          服務(wù)器端:
          import java.io.*;
          import java.lang.*;
          import java.net.*;
          public class UDPServerDemo
          {
           private DatagramSocket skServer;
           private DatagramPacket dpServer;
           private byte rb[];
           private String strReceived;
           public UDPServerDemo()
           {
            Init();
           }
           public void Init()
           {
            try
            {
             skServer=new DatagramSocket(10005);
             System.out.println("服務(wù)器已啟動(dòng)并已處于監(jiān)聽狀態(tài)!");
             rb=new byte[1024];
             dpServer=new DatagramPacket(rb,rb.length);
             strReceived="";
             int i=0;
             while(i==0)
             {
              //System.out.println("i="+i);
              skServer.receive(dpServer);
              i=dpServer.getLength();
              if(i>0)
              {
               strReceived=new String(rb,0,dpServer.getLength());
               System.out.println("[from Client]"+strReceived);i=0;
              }
             }
            }
            catch (Exception e)
            {
             e.printStackTrace();
            }
           }
           public static void main(String args[])
           {
            new UDPServerDemo();
           }
          }

          客戶端;
          import java.io.*;
          import java.lang.*;
          import java.net.*;
          public class UDPClientDemo
          {
           private DatagramSocket dsClient;
           private DatagramPacket dpClient;
           private byte sb[];
           private String strSend;
           public UDPClientDemo()
           {
            Init();
           }
           public void Init()
           {
            try
            {
             dsClient=new DatagramSocket(10002);
             sb=new byte[1024];
             strSend="使用UDP方式發(fā)送的數(shù)據(jù)";
             sb=strSend.getBytes();
             dpClient=new DatagramPacket(sb,sb.length,InetAddress.getByName("localhost"),10005);
             System.out.println("開始發(fā)送數(shù)據(jù)...");
             dsClient.send(dpClient);
             System.out.println("數(shù)據(jù)發(fā)送完畢!");
            }
            catch (SocketException se)
            {
             se.printStackTrace();
            }
            catch (IOException ie)
            {
             ie.printStackTrace();
            }
           }
           public static void main(String args[])
           {
            new UDPClientDemo();
           }
          }
          主站蜘蛛池模板: 高淳县| 湘潭市| 和硕县| 冀州市| 遵化市| 普格县| 方正县| 松潘县| 阜宁县| 抚州市| 盐亭县| 东光县| 密山市| 海城市| 台北市| 库尔勒市| 寿阳县| 凤翔县| 平南县| 香格里拉县| 新郑市| 建瓯市| 衡水市| 东兰县| 武冈市| 巴林右旗| 石楼县| 上思县| 鄂伦春自治旗| 华容县| 叶城县| 东至县| 佛冈县| 梨树县| 湖口县| 望城县| 华坪县| 师宗县| 剑河县| 滦平县| 广西|