Java Socket通信

来源:互联网 发布:科荣纺织软件 编辑:程序博客网 时间:2024/06/13 19:13

最近复习Java,Socket编程这块看了一下博客园里面的资料,写了一个模拟Java聊天室的通信程序;

Client.javaimport java.io.*;import java.net.*;public class Client {public static void main(String args[]){try{Socket socket=new Socket("127.0.0.1",4700);//客户端向4700端口发出请求;BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));  //由系统标准输入设备构造BufferedReader对象; PrintWriter os=new PrintWriter(socket.getOutputStream());//由socket对象得到输出流,并构造一个PrintWriter对象;BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));//由socket对象得到输入流,并且构造BufferedReader对象;String readline;readline=sin.readLine();//从系统标准输入设备输入一串字符串;while(!readline.equals("byebye")){os.println(readline);//将读入的字符串输出到server端;os.flush();//刷新输出流,让server端马上接收到字符串;System.out.println("客户端信息:"+readline);//在系统标准输出上打印读入的字符串;System.out.println("服务端信息:"+is.readLine());//从Server读入一字符串,并打印到标准输出上readline=sin.readLine(); //从系统标准输入读入一字符串}os.close();//关闭输出流;is.close();//关闭输入流;socket.close();//关闭socket;}catch (Exception e){System.out.println("Error Occured"+e);}}}Server.javaimport java.io.*;import java.net.*;import java.applet.Applet;public class Server {public static void main(String args[]){try{ServerSocket server=null;try{server=new ServerSocket(4700);//监听4700端口的请求;}catch (Exception e){System.out.println("can't Listen port "+e);}Socket socket=null;//使用accept方法阻塞等待客户请求,有客户请求过来就产生一个socket对象;try{socket=server.accept();}catch(Exception e){System.out.println(e);}String line;BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));//由socket得到输入流,构建一个BufferedReader对象;PrintWriter os=new PrintWriter(socket.getOutputStream());//由socket得到输出流,构建一个Printwriter对象;BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));//由系统标准输入设备构造Bufferedreader对象;System.out.println("客户端:"+is.readLine());line=sin.readLine();//从标准输入度一串字符串;while(!line.equals("byebye")){os.println(line);//向客户端输出该字符串;os.flush();//刷新输出流,让客户端迅速接收到输出信息;System.out.println("服务端:"+line);//在系统标准输出上打印读入的字符串System.out.println("客户端:"+is.readLine());//从Client读入一字符串,并打印到标准输出上line=sin.readLine();//从系统标准输入读入一字符串}os.close(); //关闭Socket输出流is.close(); //关闭Socket输入流socket.close(); //关闭Socketserver.close(); //关闭ServerSocket}catch(Exception e){System.out.println("Error!"+e);}}}Tips:应该先启动Server端,再启动Client端,然后再互相发送消息,否则不能正常连接.


0 0
原创粉丝点击