现在的位置: 首页 > 操作系统 > 正文

基于TCP协议的socket通信

2020年02月10日 操作系统 ⁄ 共 1536字 ⁄ 字号 评论关闭

一、服务器端

1、创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口

ServerSocket server = new ServerSocket(8888);

2、调用accept()方法,开始侦听,等待客户端的连接,在未连接成功之前,处于阻塞状态,返回的socket,用于与客户端连接

Socket socket = server.accept();

3、获取输入流,用来读取客户端发来的信息

InputStream is = socket.getInputStream();//字节输入流InputStreamReader isr = new InputStreamReader(is);//字符输入流BufferedReader br = new BufferedReader(isr);//缓冲输入流String info = null;while((info=br.readLine()) != null){//循环读取数据System.out.println("客户端说:"+info);}socket.shutdownInput();//关闭输入流

4、获取输出流,用户响应客户端的请求

OutputStream os = socket.getOutputStream();//字节输出流PrintWriter pw = new PrintWriter(os);//打印输出流pw.write("服务器端已接受你的请求,允许登录");pw.flush();socket.shutdownOutput();//关闭输出流

5、关闭资源

br.close();isr.close();is.close();pw.close();os.close();socket.close();server.close();

二、客户端

1、创建客户端socket,指定要连接的服务器地址和端口号

Socket socket = new Socket("127.0.0.1",8888);

2、获取输出流,给服务器端发送信息

OutputStream os = socket.getOutputStream();//字节流PrintWriter pw = new PrintWriter(os);//打印流pw.write("用户名:admin;密码:123");pw.flush();socket.shutdownOutput();//关闭输出流

3、获取输入流,用来读取服务器端发来的信息

InputStream is = socket.getInputStream();//字节输入流InputStreamReader isr = new InputStreamReader(is);//字符输入流BufferedReader br = new BufferedReader(isr);//缓冲输入流String info = null;while((info=br.readLine()) != null){System.out.println("服务端说:"+info);}socket.shutdownInput();//关闭输入流

4、关闭资源

br.close();isr.close();is.close();pw.close();os.close();socket.close();

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2017-01/139878.htm

以上就上有关基于TCP协议的socket通信的相关介绍,要了解更多TCP协议,socket通信,基于TCP协议的socket通信,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.