设为首页 加入收藏

TOP

基于TCP协议的socket通信
2017-01-24 08:15:25 】 浏览:5327
Tags:基于 TCP 协议 socket 通信

一、服务器端


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();


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇基于UDP协议的socket通信 下一篇Java定时器Timer简述

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目