Java基于Tcp协议的socket编程实例
本文实例讲述了Java基于Tcp协议的socket编程方法,分享给大家供大家参考。具体分析如下:
以下是一对一的通信编程实现,后续会继续学习一个服务器监听多个客户端的实现。
这里用到的主要步骤如下:
第一步:以特定端口(如4800)新建socket对象
第二步:以系统输入设备构造BufferedReader对象,该对象用于接收系统键盘输入的字符
第三步:以socket对象得到输出流来构造PrintWriter
第四步:以socket对象得到输入流来构造相应的BufferedReader对象,该对象用于接收server端发送过来的信息
我理解到的关闭socket:先开的后关闭,socket最后关闭。
以下是客户端的代码实现:
packagecom.fan.socket;
importjava.io.*; importjava.net.Socket;
publicclassSocketClient{ publicstaticvoidmain(String[]args)throwsIOException{
try{ Socketsocket=newSocket("127.0.0.1",4800); System.out.println("clientstart..."); //向本机的4800端口发出客户请求 BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); //由系统标准输入设备构造BufferedReader对象 PrintWriterwrite=newPrintWriter(socket.getOutputStream()); //由Socket对象得到输出流,并构造PrintWriter对象 BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream())); //由Socket对象得到输入流,并构造相应的BufferedReader对象 Stringreadline; readline=br.readLine();//从系统标准输入读入一字符串 while(!readline.equals("end")){ //若从标准输入读入的字符串为"end"则停止循环 write.println(readline); //将从系统标准输入读入的字符串输出到Server2 write.flush(); //刷新输出流,使Server马上收到该字符串 System.out.println("Client:"+readline); //在系统标准输出上打印读入的字符串 System.out.println("Server:"+in.readLine()); //从Server读入一字符串,并打印到标准输出上 readline=br.readLine();//从系统标准输入读入一字符串 }//继续循环 write.close();//关闭Socket输出流 in.close();//关闭Socket输入流 socket.close();//关闭Socket }catch(Exceptione){ System.out.println("cannotlistento:"+e);//出错,打印出错信息 } }
}