網絡通信

這是一個用Java實現網絡通信的例子,原理就是用Socket對象的輸入和輸出流實現接收和發送數據包。代碼如下:
//MyClient.java
import java.net.*;
import java.io.*;

public class MyClient {
   public static void main(String[] args) {
      try {
         Socket s = new Socket("localhost", 8000);

         OutputStream os = s.getOutputStream();
         OutputStreamWriter osw = new OutputStreamWriter(os);
         PrintWriter pw = new PrintWriter(osw, true);

         pw.println("zhuojiaoshou");
         System.out.println("client send complete");

         InputStream is = s.getInputStream();
         InputStreamReader isr = new InputStreamReader(is);
         BufferedReader br = new BufferedReader(isr);

         String mess = br.readLine();
         System.out.println("client receive complete");
         System.out.println(mess);
      } catch(Exception e) { }
   }
}
//MyServer.java
import java.net.*;
import java.io.*;

public class MyServer {
   public static void main(String[] args) {
      try {
         ServerSocket ss = new ServerSocket(8000);

         Socket s = ss.accept();

            InputStream is = s.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);

            String name = br.readLine();
            System.out.println("server receive complete, " + name);

            OutputStream os = s.getOutputStream();
         OutputStreamWriter osw = new OutputStreamWriter(os);
         PrintWriter pw = new PrintWriter(osw, true);

            pw.println("Welcome " + name);

            System.out.println("server write back complete");
        } catch (Exception e) {
          e.printStackTrace();
        }
   }
}
第一步:先啓動服務器端,打開一個8000端口(注意不要使用已經佔用的端口,這樣會拋出異常)。
第二步:啓動客戶端,地址可以使用“localhost”或者“127.0.0.1”(本地通信,若想在不同的主機上實現則需填入對方服務器的IP地址),設置跟服務器相同的端口號。
最後,使用輸入輸出流便可實現數據通信。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章