例子是學(xué)習(xí)編程的法寶。你在學(xué)習(xí)java Socket 嗎?看看下面的這個(gè)例子吧! 實(shí)現(xiàn)Client端功能的ClientApp.java原文件:
import java.net.*; import java.io.*; import java.lang.*;
public class ClientApp { public static void main(String args[]) { try { //創(chuàng)建通訊并且和主機(jī)Rock連接 Socket cSocket=new Socket("192.168.100.188",8018); //打開這個(gè)Socket的輸入/輸出流 OutputStream os=cSocket.getOutputStream(); DataInputStream is=new DataInputStream(cSocket.getInputStream());
int c; boolean flag=true;
String responseline;
while(flag) { //從標(biāo)準(zhǔn)輸入輸出接受字符并且寫如系統(tǒng) while((c=System.in.read())!=-1) { os.write((byte)c); if(c==‘‘\n‘‘) { os.flush(); //將程序阻塞,直到回答信息被收到后將他們?cè)跇?biāo)準(zhǔn)輸出上顯示出來 responseline=is.readLine(); System.out.println("Message is:"+responseline); } } } os.close(); is.close(); cSocket.close();
} catch(Exception e) { System.out.println("Exception :"+ e.getMessage()); } } } |
實(shí)現(xiàn)Server端功能的ServerApp.java原文件:
import java.net.*; import java.io.*;
public class ServerApp { public static void main(String args[]) { try { boolean flag=true; Socket clientSocket=null; String inputLine; int c;
ServerSocket sSocket=new ServerSocket(8018); System.out.println("Server listen on:"+sSocket.getLocalPort());
while(flag) { clientSocket=sSocket.accept(); DataInputStream is= new DataInputStream(new BufferedInputStream(clientSocket.getInputStream())); OutputStream os=clientSocket.getOutputStream();
while((inputLine=is.readLine())!=null) { //當(dāng)客戶端輸入stop的時(shí)候服務(wù)器程序運(yùn)行終止! if(inputLine.equals("stop")) { flag=false; break; } else { System.out.println(inputLine);
while((c=System.in.read())!=-1) { os.write((byte)c); if(c==‘‘\n‘‘) { os.flush(); //將信息發(fā)送到客戶端 break; } } }
} is.close(); os.close(); clientSocket.close();
} sSocket.close(); } catch(Exception e) { System.out.println("Exception :"+ e.getMessage()); } } } |
|