基于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();
转载于:https://www.cnblogs.com/rrb520/p/6245415.html
基于TCP协议的socket通信相关推荐
- java socket发送定长报文_一个基于TCP协议的Socket通信实例
原标题:一个基于TCP协议的Socket通信实例 1. 前言 一般接口对接多以http/https或webservice的方式,socket方式的对接比较少并且会有一些难度.正好前段时间完成了一个so ...
- 基于TCP协议的Socket通信,实现文件断点续传
代码示例: 实现文件断点续传 先编写一个服务端和客户端都会用到的流解析类: StreamTool.java: public class StreamTool {public static void s ...
- linux socket通信tcp,基于TCP协议的socket通信
一.服务器端 1.创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口 ServerSocket server = new ServerSocket(8888); 2. ...
- 基于TCP协议的Socket网络通信
前言 一. 什么是网络(了解七层网络模型)? 二. 什么是TCP/UDP协议? 三.什么是socket? 定义 四.基于TCP协议的socket通信的实现步骤是怎样的? 客户端的实现 服务端的实现 测 ...
- java socket 通信协议_java 基于TCP协议的Socket编程和通信
java 基于 TCP 协议的 Socket 编程和通信 在网络通讯中,第一次主动发起通讯的程序被称作客户 端 (Client) 程序, 简称客户端, 而在第一次通讯中等待连接的 程序被称作服务器端 ...
- python 网络编程 套接字的初使用 基于TCP协议的socket
文章目录 基于TCP协议的socket server端 client端 尝试启动 基于TCP协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 # ...
- 【Linux】一篇文章搞定 CPP模拟实现TCP协议下socket通信
CPP模拟实现TCP协议下socket通信 1. TCP 编程流程图 2. 数据收发阶段使用的API 2.1 send接口 2.2 recv接口 3. 两个队列 4. 总结TCP 编程双端流程 5. ...
- 浅析C#基于TCP协议的SCOKET通信
TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实 ...
- delphi socket 流的使用_基于TCP协议的Socket编程和通信_单向通信
1.TCP:单向通信Socket之服务器端 import java.io.BufferedWriter; import java.io.IOException; import java.io.Outp ...
最新文章
- Python显示图像
- 宏基因组数据提交GSA指南
- 关闭体眠可释放系统盘的空间
- FPGA之道(54)状态机的设计
- c 语言如何处理表格文件中的数据库,C#程序从Excel表格中读取数据并进行处理
- oracle计费系统相关问题,用radius和oracle做认证计费系统
- 主c++ 辅lua luabind protobuf
- python list()函数 (从可迭代对象返回初始化的新列表)
- GIT常用命令--拉取提交
- PyTorch语义分割开源库semseg
- rtt面向对象oopc——1.rtt定义的这些类有什么用?
- (44)Xilinx ROM IP核配置(五)(第9天)
- SVN工作笔记006---解决TortoiseSVN中out of date问题的一个方法
- 解决忽略vscode中pylint报错的问题
- php数据库添加会员等级显示,给ECSHOP后台订单列表加上显示会员等级
- access 此程序未正确安装_一款让“微软爸爸杀不死”的数据库软件——生于1992的Access...
- 时间管理之番茄工作法
- 我的地盘ol位置服务器拒绝怎么办,微信我的地盘ol等级划分详解 微信我的地盘ol等级怎么分...
- [并查集]BZOJ 1050——[HAOI2006]旅行comf
- (一)PBR材质理论
热门文章
- 字段定义_两大高招逐浪CMS中定义省地市县三级字段显示方式
- 去除MFC窗口的自动记忆功能
- mysql5.6配置semi_sync
- python的os模块批量获取目标路径下的文件名
- Window下启动MariaDB服务启动失败
- [CRM] CRM 产品周期
- [原创]Pubwin2007服务器安全测试工具(防范Pubwin收银伴侣之类的软件)
- 搭建Harbor企业级docker仓库
- 2016 CVPR 德州仪器 ADAS Tutorial
- 解密汽车全景行车安全系统的前世和今生——第二讲:原理讲解