资源下载地址:https://download.csdn.net/download/sheziqiong/86159198
资源下载地址:https://download.csdn.net/download/sheziqiong/86159198

一、背景知识

1.1 Socket

Socket是两台主机之间的一个连接。它可以完成7个基本操作:

连接远程机器,发送数据,接收数据,关闭连接,绑定端口,监听入站数据,在绑定端口上接受来自远程机器的连接。

socket中TCP的三次握手建立连接:

tcp建立连接要进行“三次握手”,即交换三个分组。大致流程如下:

  1. 客户端向服务器发送一个SYN J
  2. 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1
  3. 客户端再想服务器发一个确认ACK K+1

当客户端调用connect时,触发了连接请求,向服务器发送了SYN J包,这时connect进入阻塞状态;服务器监听到连接请求,即收到SYN J包,调用accept函 数接收请求向客户端发送SYN K ,ACK J+1,这时accept进入阻塞状态;客户端收到服务器的SYN K ,ACK J+1之后,这时connect返回,并对SYN K进行确认;服务器收到ACK K+1时,accept返回,至此三次握手完毕,连接建立。

1.2 客户端

  1. 创建套接字
  2. 向服务器发送连接请求(connect)
  3. 通信(send/recv)
  4. 关闭套接字

1.3 服务器

  1. 创建用于监听的套接字(socket)

  2. 将套接字绑定到本地地址和端口上(bind)

  3. 将套接字设为监听模式(listen)

  4. 等待客户请求(accept),此处要不断的调用accept

  5. 通信(send/receive),完成后返回4

  6. 关闭套接字(closesocket)

1.4 实验流程

该项目通过socket客户端与服务器建立tcp连接链接建立成功,此时服务器端就会产生绿灯;当客户端下线的时候绿灯会变成红灯

  1. 客户端通过 socket = new Socket(IP,PORT); 链接到服务器

  2. 客户端一旦链接成功那么会通过ObjectOutputStream 流将封装好的MessageInfo对象的通过网络传输到服务器

  3. 服务通过客户端 Socket accept = serverSocket.accept();得到的accept Socket

    MessageInfo messageInfo=(MessageInfo)objectInputStream.readObject();

    得到客户端传来的MessageInfo对象然后 maps.put(accept,messageInfo);中

  4. 服务器启动监控线程将maps里面保存的客户端不停的遍历刷新页面,将灯的状态改变。

1.5 实验截图

客户端界面:

未登录前

登陆后

服务器界面:

客户A关掉后链接丢失服务器改变客户端A绿灯变红灯

新增一个客户端C

客户端C断开灯变红


资源下载地址:https://download.csdn.net/download/sheziqiong/86159198
资源下载地址:https://download.csdn.net/download/sheziqiong/86159198

基于Java的Socket实现TCP连接相关推荐

  1. api有哪些 javasocket_基于java的socket编程及API解析

    一.socket通讯过程 1.socket与socket编程简介: socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台 ...

  2. TCP Socket与TCP 连接

    一. TCP Socket和TCP连接 tcp socket tcp socket 是标示了一台主机的进程,是tcp连接中一端的实例.socket不是连接,只是表示了其中一端.由IP和port构成. ...

  3. 基于Java+Swing+Socket实现泡泡堂游戏

    基于Java+Swing+Socket实现泡泡堂游戏 一.功能展示 1.游戏登陆 2.房间 3.对战 二.代码展示 三.其他系统 前言 <泡泡堂>是由韩国游戏公司Nexon开发的一款休闲游 ...

  4. JAVA 通过 Socket 实现 TCP 编程

    简介 TCP简介 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机 ...

  5. Kafka 的 Java 消费者如何管理 TCP 连接?

    何时创建 TCP 连接? 和生产者不同的是,构建 KafkaConsumer 实例时是不会创建任何 TCP 连接的,TCP 连接是在调用 KafkaConsumer.poll 方法时被创建的.再细粒度 ...

  6. 手机和电脑基于java的socket简单通信

    Java手机与电脑的Socket通信 了解手机与电脑的socket通信 下面给出代码 完整程序代码 效果 了解手机与电脑的socket通信 1.内网之间的通信: 内网就是两者处于同一个局域网之中,不用 ...

  7. 【Java 网络编程】TCP 连接 断开 机制 ( 三次握手 | 四次挥手 )

    文章目录 I TCP 连接建立流程 ( 三次握手 ) II SYN 和 ACK 中的随机值 III TCP 连接建关闭流程 ( 四次挥手 ) IV TCP 连接断开的保证 V 四次挥手的必要性 I T ...

  8. java客户端服务器聊天程序流程图_基于java的socket简单聊天编程

    socket编程: 一:什么是socket:socket是BSD UNIX的通信机制,通常称为"套接字",其英文原意是"孔"或"插座".有些 ...

  9. java socket编程 聊天_基于java的socket简单聊天编程

    socket编程: 一:什么是socket:socket是BSD UNIX的通信机制,通常称为"套接字",其英文原意是"孔"或"插座".有些 ...

最新文章

  1. 《HTML 5与CSS 3权威指南 》 (第2版·下册)——第19章 19.3.5
  2. 使用 Contour 接管 Kubernetes 的南北流量
  3. 一文深入浅出cv中的Attention机制
  4. 【Ogre-windows】旋转矩阵及位置解析
  5. [WPF疑难] 继承自定义窗口
  6. 用于RIA的JavaFX 2与HTML5
  7. mysql keeplevied_mysql keepalived
  8. 【iOS开发】什么是Bundle,每个iOS应用实际上是一个Bundle
  9. 参加软件测试工程师面试前,这些内容你一定要准备
  10. 微信小程序 java后勤服务管理系统app
  11. 台式计算机进入安全模式蓝屏,电脑进入安全模式蓝屏怎么办?
  12. centos 安装Times New Roman
  13. 值得信赖的数据同步备份软件 -Allway Sync 安全又可靠,简单又易用!
  14. php iphone图片旋转图片,php识别翻转iphone拍摄的颠倒图片
  15. Qt for WebAssembly in Windows
  16. octave-移动数据
  17. recap 360.html,Autodesk ReCap
  18. 家居安防与监控全国产化电子元件推荐方案
  19. DART Karaoke Author1.35消除原唱人声的方法制作伴奏
  20. ROS wiki系列|在ROSwiki中查找特定内容(以launch为例)

热门文章

  1. IGP协议-EGP协议-RIP协议路由-水平分割-毒性逆转-RIP周期更新
  2. linux qq远程桌面连接,还在用QQ远程桌面?这款软件还能用手机控制电脑!
  3. android接听ios电话,有了这个神器,在PC上也能接听iPhone电话、收发短息啦(安卓也可以哦~)...
  4. 2019计算机一级msoffice真题,【2019年整理】全国计算机一级MSOFFICE练习题带题解.pdf...
  5. 斯坦福大学计算机视觉课程cs231n——第一课:课程介绍 计算机视觉概述
  6. 什么是Cython?让Python有C语言的速度
  7. 力学笃行系列之JAVA后台知识体系整理
  8. check the manual that corresponds to your MySQL server version for the right syntax to use near (0)
  9. 《Linux篇》超详细Linux设置静态IP教程
  10. win10字体突然变成了繁体快速解决