例子是学习编程的法宝。你在学习java Socket 吗?看看下面的这个例子吧!
实现Client端功能的ClientApp.java原文件:
import java.net.*; import java.io.*; import java.lang.*; public class ClientApp { public static void main(String args[]) { try { //创建通讯并且和主机Rock连接 Socket cSocket=new Socket("192.168.100.188",8018); //打开这个Socket的输入/输出流 OutputStream os=cSocket.getOutputStream(); DataInputStream is=new DataInputStream(cSocket.getInputStream()); int c; boolean flag=true; String responseline; while(flag) { //从标准输入输出接受字符并且写如系统 while((c=System.in.read())!=-1) { os.write((byte)c); if(c=='\n') { os.flush(); //将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来 responseline=is.readLine(); System.out.println("Message is:"+responseline); } } } os.close(); is.close(); cSocket.close(); } catch(Exception e) { System.out.println("Exception :"+ e.getMessage()); } } } |
实现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) { //当客户端输入stop的时候服务器程序运行终止! 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(); //将信息发送到客户端 break; } } } } is.close(); os.close(); clientSocket.close(); } sSocket.close(); } catch(Exception e) { System.out.println("Exception :"+ e.getMessage()); } } } 建立两个java类,打开两个Dos命令窗口,分别执行 >javac ServerApp.java >java ServerApp >javac ClientApp.java >java ClientApp |