這是一個用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地址),設置跟服務器相同的端口號。
最後,使用輸入輸出流便可實現數據通信。