一、服务器端

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通信相关推荐

  1. java socket发送定长报文_一个基于TCP协议的Socket通信实例

    原标题:一个基于TCP协议的Socket通信实例 1. 前言 一般接口对接多以http/https或webservice的方式,socket方式的对接比较少并且会有一些难度.正好前段时间完成了一个so ...

  2. 基于TCP协议的Socket通信,实现文件断点续传

    代码示例: 实现文件断点续传 先编写一个服务端和客户端都会用到的流解析类: StreamTool.java: public class StreamTool {public static void s ...

  3. linux socket通信tcp,基于TCP协议的socket通信

    一.服务器端 1.创建serverSocket,即服务器端的socket,绑定指定的端口,并侦听此端口 ServerSocket server = new ServerSocket(8888); 2. ...

  4. 基于TCP协议的Socket网络通信

    前言 一. 什么是网络(了解七层网络模型)? 二. 什么是TCP/UDP协议? 三.什么是socket? 定义 四.基于TCP协议的socket通信的实现步骤是怎样的? 客户端的实现 服务端的实现 测 ...

  5. java socket 通信协议_java 基于TCP协议的Socket编程和通信

    java 基于 TCP 协议的 Socket 编程和通信 在网络通讯中,第一次主动发起通讯的程序被称作客户 端 (Client) 程序, 简称客户端, 而在第一次通讯中等待连接的 程序被称作服务器端 ...

  6. python 网络编程 套接字的初使用 基于TCP协议的socket

    文章目录 基于TCP协议的socket server端 client端 尝试启动 基于TCP协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 # ...

  7. 【Linux】一篇文章搞定 CPP模拟实现TCP协议下socket通信

    CPP模拟实现TCP协议下socket通信 1. TCP 编程流程图 2. 数据收发阶段使用的API 2.1 send接口 2.2 recv接口 3. 两个队列 4. 总结TCP 编程双端流程 5. ...

  8. 浅析C#基于TCP协议的SCOKET通信

    TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实 ...

  9. delphi socket 流的使用_基于TCP协议的Socket编程和通信_单向通信

    1.TCP:单向通信Socket之服务器端 import java.io.BufferedWriter; import java.io.IOException; import java.io.Outp ...

最新文章

  1. Python显示图像
  2. 宏基因组数据提交GSA指南
  3. 关闭体眠可释放系统盘的空间
  4. FPGA之道(54)状态机的设计
  5. c 语言如何处理表格文件中的数据库,C#程序从Excel表格中读取数据并进行处理
  6. oracle计费系统相关问题,用radius和oracle做认证计费系统
  7. 主c++ 辅lua luabind protobuf
  8. python list()函数 (从可迭代对象返回初始化的新列表)
  9. GIT常用命令--拉取提交
  10. PyTorch语义分割开源库semseg
  11. rtt面向对象oopc——1.rtt定义的这些类有什么用?
  12. (44)Xilinx ROM IP核配置(五)(第9天)
  13. SVN工作笔记006---解决TortoiseSVN中out of date问题的一个方法
  14. 解决忽略vscode中pylint报错的问题
  15. php数据库添加会员等级显示,给ECSHOP后台订单列表加上显示会员等级
  16. access 此程序未正确安装_一款让“微软爸爸杀不死”的数据库软件——生于1992的Access...
  17. 时间管理之番茄工作法
  18. 我的地盘ol位置服务器拒绝怎么办,微信我的地盘ol等级划分详解 微信我的地盘ol等级怎么分...
  19. [并查集]BZOJ 1050——[HAOI2006]旅行comf
  20. (一)PBR材质理论

热门文章

  1. 字段定义_两大高招逐浪CMS中定义省地市县三级字段显示方式
  2. 去除MFC窗口的自动记忆功能
  3. mysql5.6配置semi_sync
  4. python的os模块批量获取目标路径下的文件名
  5. Window下启动MariaDB服务启动失败
  6. [CRM] CRM 产品周期
  7. [原创]Pubwin2007服务器安全测试工具(防范Pubwin收银伴侣之类的软件)
  8. 搭建Harbor企业级docker仓库
  9. 2016 CVPR 德州仪器 ADAS Tutorial
  10. 解密汽车全景行车安全系统的前世和今生——第二讲:原理讲解