洛神賦

          子虛烏有

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            7 Posts :: 10 Stories :: 0 Comments :: 0 Trackbacks

                   所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求。Socket和ServerSocket類庫位于java.net包中。ServerSocket用于服務器端,Socket是建立網絡連接時使用的。在連接成功時,應用程序兩端都會產生一個Socket實例,操作這個實例,完成所需的會話。對于一個網絡連接來說,套接字是平等的,并沒有差別,不因為在服務器端或在客戶端而產生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。
          下面是我忍為比較重要的API:
                  1、. Accept方法用于產生"阻塞",直到接受到一個連接,并且返回一個客戶端的Socket對象實例。"阻塞"是一個術語,它使程序運行暫時"停留"在這個地方,直到一個會話產生,然后程序繼續;通常"阻塞"是由循環產生的。

            2、. getInputStream方法獲得網絡連接輸入,同時返回一個InputStream對象實例,。

            3、. getOutputStream方法連接的另一端將得到輸入,同時返回一個OutputStream對象實例。

            注意:其中getInputStream和getOutputStream方法均會產生一個IOException,它必須被捕獲,因為它們返回的流對象,通常都會被另一個流對象使用。

            寫代碼時一般先寫server端.
          //Server

          package Killva.NetWorkchaper1.o3;

          import java.io.DataOutputStream;
          import java.io.IOException;
          import java.net.ServerSocket;
          import java.net.Socket;

          public class TestTCPServer {
           public static void main(String args[])throws IOException{
            ServerSocket ss =new ServerSocket(9999);
            while(true){
             System.out.println("--------服務端已近啟動------------");
                Socket s =ss.accept();
               
                DataOutputStream dos =new DataOutputStream(s.getOutputStream());
               
                System.out.println("客戶端["+s.getInetAddress().getHostAddress()+
                               "  :"+s.getPort()+
                               "]已近鏈接!");
                dos.writeUTF("服務器端寫入客戶端的數據:客戶端("+
                         s.getInetAddress().getHostAddress()+
                          "  :"+s.getPort()+
                                  "]已經鏈接上服務器端["+
                                  s.getLocalAddress().getHostName()+
                                  ":"+s.getLocalPort()+
                                  "]!");
               
                dos.flush();
                dos.close();
                s.close();
               
               
            }
           }
           

          }



          Client端

          package Killva.NetWorkchaper1.o3;

          import java.io.DataInputStream;
          import java.io.IOException;
          import java.net.Socket;


          public class TestTCPCLient {
           public static void main(String[] args) throws IOException{
            System.out.println("-------------client端-----------");
            for(long i=0;i<10;i++){
             Socket s =new Socket("192.168.1.*",9999);//IP是用你所在的局域網來測試
             
             DataInputStream dis = new DataInputStream(s.getInputStream());
             System.out.println(""+dis.readUTF());
             dis.close();
             s.close();
            }
           }
          }


          運行結果真確時服務器端和客戶端能連接

          感謝閱讀?。。?!




          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 凤翔县| 台安县| 北宁市| 平原县| 大田县| 大足县| 资溪县| 乐山市| 洱源县| 抚州市| 栾川县| 明溪县| 阳谷县| 台前县| 衡东县| 六枝特区| 江孜县| 义乌市| 上犹县| 永丰县| 榆社县| 吐鲁番市| 西吉县| 南丹县| 桑植县| 望江县| 玛纳斯县| 韩城市| 桐城市| 普格县| 清徐县| 紫金县| 积石山| 灵璧县| 攀枝花市| 克什克腾旗| 安康市| 融水| 凤阳县| 安丘市| 南澳县|