您的位置:首页 > 编程语言 > Java开发

Java Socket简单实现客户端与服务端通信

2016-10-10 19:45 381 查看


JavaSocket简单实现客户端与服务端通信

实现Socket通信的步骤

创建一个ServerSocket监听8888端口

等待请求

接收到请求之后使用socket进行通信,创建BufferedReader用于读取数据

创建PrintWriter,用于发送数据

关闭资源

服务端代码

packagesocket;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.net.ServerSocket;
importjava.net.Socket;
/**
*CreatedbyRogerLawon2016/10/10.
*/
publicclassServer2{
 publicstaticvoidmain(String[]args){
   try{
     //创建一个ServerSocket监听8888端口
     ServerSocketserverSocket=newServerSocket(8888);
     //等待请求
     Socketsocket=serverSocket.accept();
     //接收到请求之后使用socket进行通信,创建BufferedReader用于读取数据
     BufferedReaderis=newBufferedReader(newInputStreamReader(socket.getInputStream()));
     Stringline=is.readLine();
     System.out.println("receivedformclient:"+line);
     //创建PrintWriter,用于发送数据
     PrintWriterprintWriter=newPrintWriter(socket.getOutputStream());
     printWriter.println("receiveddata"+line);
     printWriter.flush();
     //关闭资源
     printWriter.close();
     is.close();
     socket.close();
     serverSocket.close();
   }catch(IOExceptione){
     e.printStackTrace();
   }
 }
}


客户端代码

packagesocket;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.net.Socket;
/**
*CreatedbyRogerLawon2016/10/10.
*/
publicclassClient2{
 publicstaticvoidmain(String[]args){
   Stringmsg="ClientData";
   try{
     //创建一个Socket和本地的8888端口连接
     Socketsocket=newSocket("127.0.0.1",8888);
     //使用Socket创建PrintWriter和PrintBufferedReader进行读写数据
     PrintWriterprintWriter=newPrintWriter(socket.getOutputStream());
     BufferedReaderis=newBufferedReader(newInputStreamReader(socket.getInputStream()));
     //发送数据
     printWriter.println(msg);
     printWriter.flush();
     //接收数据
     Stringline=is.readLine();
     System.out.println("receivedfromserver:"+line);
     //关闭资源
     printWriter.close();
     is.close();
     socket.close();
   }catch(IOExceptione){
     e.printStackTrace();
   }
 }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: