基于TCP实现双向通信对话功能
TCP是一个全双工协议,数据通信允许数据同时在两个方向上传输,因此全双工是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。我们来做一个简单的实现
Server端
public class ServerSocketDemo1 {static ExecutorService executorService=Executors.newFixedThreadPool(1000);public static void main(String[] args) {ServerSocket serverSocket=null;try {//服务端一定需要去监听一个端口号,ip默认就是本机的ip地址//ip:portserverSocket=new ServerSocket(8080);while(true) {//阻塞(连接阻塞)Socket socket = serverSocket.accept(); //接收客户端的连接(阻塞)executorService.execute(new SocketThread(socket));}/*//拿到输入流(阻塞, read/write阻塞)BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//输出流PrintWriter printWriter=new PrintWriter(socket.getOutputStream());//通过控制台拿到数据BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));System.out.println("Client:"+in.readLine()); //获得输入流的信息String line=sin.readLine(); //获得控制台输入的数据while(!line.equals("bye")){printWriter.println(line); //写回到客户端printWriter.flush();System.out.println("client:"+in.readLine()); //读取客户端传过来的数据line=sin.readLine(); //重新读取控制台的数据}System.out.println(in.readLine()); //获得客户端的输入信息*/} catch (IOException e) {e.printStackTrace();}}}
Client端
public class ClientSocketDemo1 {public static void main(String[] args) {try {//找到目标的ip和端口Socket socket=new Socket("localhost",8080);//在当前链接上写入输入PrintWriter out=new PrintWriter(socket.getOutputStream(),true);//控制台的输入流BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));//拿到输入流BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));String readline=sin.readLine(); //获得控制台的输入while(!readline.equals("bye")){out.println(readline);System.out.println("Server:"+in.readLine());readline=sin.readLine(); //重新获取}} catch (IOException e) {e.printStackTrace();}}
}
基于TCP实现双向通信对话功能相关推荐
- 我的WCF之旅 (11): 再谈WCF的双向通讯-基于Http的双向通讯 V.S. 基于TCP的双向通讯...
在一个基于面向服务的分布式环境中,借助一个标准的.平台无关的Communication Infrastructure,各个Service通过SOAP Message实现相互之间的交互.这个交互的过程实 ...
- 基于python的聊天软件的设计与实现_Python基于TCP实现会聊天的小机器人功能示例...
本文实例讲述了Python基于TCP实现会聊天的小机器人功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端程序 import socket words ={'how are you?':'F ...
- 从入门到入土:基于Python采用TCP协议实现通信功能的程序
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:基于C语言采用TCP协议实现通信功能的程序(仅有代码)
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- python实现淘宝客服自动回复语_Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例...
本文实例讲述了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能.分享给大家供大家参考,具体如下: [吐槽] 网上的代码害死人,看着都写的言之凿凿,可运行就是有问题. 有些 ...
- 基于Vue2实现的仿手机QQapp(支持对话功能,滑动删除....)—— 聊聊开发过程中踩到的一些坑与解决方案,以及个人感悟...
使用Vue2进行的仿手机QQ的webapp的制作,在ui上,参考了设计师kaokao的作品,作品由个人独立开发,源码中进行了详细的注释. 由于自己也是初学Vue2,所以注释写的不够精简,请见谅. 目前 ...
- 【学习笔记】在windows下进行基于TCP的本地客户端和服务端socket通信
文章目录 socket介绍 java中使用socket 基于tcp的socket通信 使用ServerSocket类创建一个web服务器:(java) windows下的基于tcp的socket编程( ...
- socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程
一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...
- 基于TCP/UDP的P2P网络通信协议研究与实现
此章节是理论知识,下个章节会奉献源码 摘 要 对等式网络(peer-to-peer,简称P2P),又称点对点技术,是一种实现网络中不同主机直接通信的技术.在物联网的应用中,大量的设备需要能进行点 ...
最新文章
- 刘宇凡:群生?群死?群P?
- 怎么把动态图从python弄下来_Python将视频或者动态图gif逐帧保存为图片的方法
- delphi 到出execl2010 文件损坏_Win7系统出现explorer.exe损坏的图像的解决方法是什么?...
- 基金小窍门:如何判断基金的赚与赔
- 2015电大c语言,2015电大本科C语言程序设计A试题汇总.doc
- 曝iPhone 12 Pro耗电异常,没开启任何应用电量也急剧下降
- mysql函数 字符长度限制_MySQL中使用group_concat()函数数据字符过长报错的问题解决方法...
- 花书+吴恩达深度学习(五)正则化方法(防止过拟合)
- linux内核调度,Linux内核的三种调度策略
- url-pattern配置技巧
- a标签点击不跳转的几种方法
- 从数据库查询数据并输出到前台页面
- HTML前端在线购书商城,基于HTML css的商城购物前端模板
- 2017年12月HCNP考试易错题汇总
- 元素出栈入栈顺序是否合法
- 2021-01-27 大数据课程笔记 day7
- /etc/xinetd.d 的使用
- 方根法公式_初中数学根式运算法则公式
- python红楼梦人物词频统计_用R进行文本分析初探——以《红楼梦》为例
- IEEE之后,学术政治化会成为人类的“潘多拉魔盒”吗?
热门文章
- zookeeper学习一
- linux-VM无法连接mks套接字连接尝试次数太多
- 用word发布CSDN文章
- 【python】dist-packages和site-packages的区别
- 看看C# 6.0中那些语法糖都干了些什么(上篇)
- express开发实例
- meta http-equiv=X-UA-Compatible content=IE=7 /意思是将IE8用IE7进行渲染,使网页在IE8下正常...
- 委托、Lambda表达式和事件
- Nodejs读写文件
- 64位服务器IIS不能识别32位framework版本。IIS没有Asp.net切换界面的解决办法。