首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

socket模拟客户端跟服务端实时通信

2013-11-08 
socket模拟客户端和服务端实时通信利用java网络编程实现客户端跟服务器之前相互发送接受消息的功能,首先启

socket模拟客户端和服务端实时通信

利用java网络编程实现客户端跟服务器之前相互发送接受消息的功能,首先启动服务器,然后运行客户端,接着在客户端的控制台下,发送消息,然后切换到服务器控制台,即可看到客户端的消息,并对其进行回复,然后切换到服务端的客户端控制台,查看到效果,以达到相互通信发消息的功能,效果图如下:


socket模拟客户端跟服务端实时通信


socket模拟客户端跟服务端实时通信
?
socket模拟客户端跟服务端实时通信

首先新建一个java项目,并新建SocketService.java,代码如下:

?

package ch03;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class SocketClient{    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("bye")){                //若从标准输入读入的字符串为 "bye"则停止循环                os.println(readline);                //将从系统标准输入读入的字符串输出到Server                os.flush();                //刷新输出流,使Server马上收到该字符串                System.out.println("Server:"+is.readLine());                //从Server读入一字符串,并打印到标准输出上                readline=sin.readLine(); //从系统标准输入读入一字符串            } //继续循环            os.close(); //关闭Socket输出流            is.close(); //关闭Socket输入流            socket.close(); //关闭Socket        }catch(Exception e) {            System.out.println("Error"+e); //出错,则打印出错信息        }    }}

?

最后,先运行SocketService.java,开出通信的端口号等等,再运行SocketClient.java,去根据端口,ip等进行连接,然后就可以通信了,如上图所示,客户端发完一条后,服务端可以马上收到,并进行回复,然后客户端就会立刻收到服务端的回复,以此循环进行通信。

?

热点排行