Socket通信

1.简单介绍

学习Socket也只是通过一个小例子学习的,关于Socket原理目前只是了解到是基于TCP协议,关于TCP与UDP协议区别可以去百度详情查一下他们的区别之处,大体上是传输高效与安全方面的区别。

2.代码实现

关于双人聊天功能实现时候,大体分为一个客户端类,一个服务端类,服务器与客户端之间可以相互发送消息。

在客户端和服务端中有监听类和发送类,实现互相之间发送消息。核心代码:

//监听消息及打印出
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
System.out.println(ois.readObject());
//发送消息
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject("客户端发送的消息:" + string);
oos.flush();

心跳机制,由于在实际项目部署中如果遇到,客户端与服务端断开连接情况,需要我们有重连机制,或者是重复访问服务端,知道连接成功有显示。心跳代码:

    @Overridepublic void run() {try {System.out.println("心跳包程序已启动...");while (true) {Thread.sleep(50000);JSONObject object = new JSONObject();object.put("type", "heart");object.put("msg", "心跳包");oos.writeObject(object);oos.flush();}} catch (Exception e) {e.printStackTrace();try {socket.close();Client.connection_state = false;Client.reconnect();} catch (Exception ex) {ex.printStackTrace();}}}

实现原理:其中设置的继承Runnable每隔50s向服务器发送一个消息,如果出现断开连接的异常情况,就设置connection_state 状态为未连接,从而进行后面的未连接操作。

3.源码下载

https://pan.baidu.com/s/1Cvgm_MMur6c2hWmsLDIWOQ提取码:u43y

4.题外话

最近学习方面,主要还是学习socket,多线程等基础,感觉自己在基础方面还是比较薄弱的,需要恶补下。

写完这篇准备去写一篇Dota2娱乐模式omg的攻略,平时下班没事儿也会玩一两局。感觉还是蛮有意思的,可以去我微博里看看,之前还写过关于云顶之奕或者自走棋的发牌机制。

Socket通信,实现简单的双人聊天功能相关推荐

  1. 基于Python Tkiner、thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信

    基于Python Tkiner.thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信 完整代码下载地址:基于Python Tkiner.thread与soc ...

  2. Java--网络编程(利用UDP实现简单的双人聊天)

    1 UDP的定义 UDP(User Datagram Protocol)是一个无连接的传输层协议,提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据.UDP报文没有可靠性保证.顺 ...

  3. 基于PHP实现一个简单的在线聊天功能(轮询ajax )

    基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...

  4. C#通信之Socket通信的简单例子

    socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 这里构建一个简单的例子 ...

  5. 使用nettyio+socket.io搭建简单的网页聊天室

    使用nettyio+socket.io搭建简单的网页聊天室 1 目录结构 2 maven 依赖配置 <project xmlns="http://maven.apache.org/PO ...

  6. android socket 简易聊天室 java服务器,Android Socket通信实现简单聊天室

    socket通信是基于底层TCP/IP协议实现的.这种服务端不需要任何的配置文件和tomcat就可以完成服务端的发布,使用纯java代码实现通信.socket是对TCP/IP的封装调用,本身并不是一种 ...

  7. Socket编程一实现简易的聊天功能以及文件传输

    干程序是一件枯燥重复的事,每当感到内心浮躁的时候,我就会找小说来看.我从小就喜爱看武侠小说,一直有着武侠梦.从金庸,古龙,梁羽生系列到凤歌(昆仑),孙晓(英雄志)以及萧鼎的(诛仙)让我领略着不一样的江 ...

  8. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答...

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  9. 基于PHP实现一个简单的在线聊天功能

    一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻烦的是前端展..于是.. 需求分析 要实现功能,首先要做前端,经过对比其他网站的在线聊天功能,发现除了基本的聊天功能以外,还要注意 ...

最新文章

  1. 必会重构技巧:使用多态替换条件
  2. react 的props和state
  3. 广数系统u盘支持什么格式_支持转换50+种三维软件格式还能减面还是免费的,什么工具这么强大?...
  4. C# winform DataGridView 属性说明
  5. java面试题六 float变量合法声明
  6. iOS持久化存储-CoreData简介
  7. Redis进阶实践之十六 Redis大批量增加数据
  8. 删除WinXP下打开最近文档后,产生的无效快捷方式
  9. 牛客网暑期ACM多校训练营(第三场) E Sort String 哈希处理字符串(模板)
  10. 精妙SQL语句集合(收集)
  11. 会做饭的机器人曰记_会做饭的机器人作文二百字
  12. 代码实现抖音时钟罗盘
  13. 锐捷交换机常用命令速查
  14. jeecgboot修改登录界面、背景图等的页面记录
  15. web前端入门知识大全:系统路线,各类要点解析
  16. stm8s003中串口中断问题
  17. 强化学习、行为心理学和成瘾机制
  18. python五角星程序显示错误_python画五角星和六角星程序
  19. 【教程】手机远程连接另一台手机的termux进行拍照
  20. CSS实现鼠标悬停缩放

热门文章

  1. 仙侠世界2不显示服务器,游戏相关问题_仙侠世界2常见问题及解决方法一览_3DM单机...
  2. 理想边界尺寸怎么算_一台以加油发电的新能源汽车 理想ONE - 新闻详情
  3. docker flannel实践
  4. 微信关掉企业公告的请下载企业微信通知
  5. pubg测试服服务器维护上不去,绝地求生测试服进不去怎么办 测试服上不去黑屏解决方法...
  6. 第四周-自动班作业及实验
  7. 微信小程序学习笔记-自定义组件
  8. 分布式 事务 cap
  9. 解决Ubuntu没有wifi图标的问题
  10. 树莓派网络监控(官方64位系统+docker+motioneye+内网穿透)