用戶端和伺服器端可以互相交信,在這裡我實作了一對一的通訊,有這個基礎了,我們就可以實作一對多的通信了。
那我們就來程式設計實作之.
首先要引用網絡包
import java.io.*;
import java.net.*;
//在這裡初始化ServerSocket
serverSocket=new ServerSocket(8000);
socket=serverSocket.accept();
這樣伺服器端處理監聽狀态,一直監聽用戶端的連接配接.
//在這裡初始化ServerSocket
socket=new Socket(host,port);//host為伺服器的IP位址,port為端口号,注意port号越大越好。0~65535
這樣用戶端就可以同伺服器端互相通信了
這樣伺服器和用戶端就建立了連接配接。
下面我來建立讀寫流友善調用
//構造一個傳回值為BuffereReader讀對象流的函數
private BufferedReader getReader(Socket socket)throws IOException{
InputStream socektIn=socket.getInputStream();
return new BufferedReader(new InputStreamReader(socektIn));
}
//構造一個傳回值為PrintWriter寫對象流的函數
private PrintWriter getWriter(Socket socket) throws IOException{
OutputStream socketOut=socket.getOutputStream();
return new PrintWriter(socketOut,true);
}
這樣就可以通過
try {
pw=getWriter(socket);
} catch (IOException e1) {
// 處理異常
e1.printStackTrace();
}
pw.println(tt);
}
這種方式将資訊發送出去
通過
public void run() {
// 在這裡運作線程中的方法
while(true){
try {
br=getReader(socket);
String str;
str=br.readLine();
jta.append("用戶端說: "+str+"/n");
} catch (IOException e) {
// 處理異常
e.printStackTrace();
}
}
}
因為我們不知道什麼時候能夠讀到資訊,是以用一個線程進行捕捉
并顯示出來
當然不要在主函數中啟動主線程
Server server=new Server();
Thread th=new Thread(server);//初始化線程.
th.start();//啟動線程
這樣就可以實作收發資訊了。而用戶端其實和伺服器端差不多的方式收發資訊,這裡就不多說了。