首页
Aye486
取消

协程简介

基本概念 协程 在这里略过进程和线程的基本概念,默认读者了解 协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。这样带来的好处就是性能得到了很大的提升,不会像线程那样需要上下文切换来消耗资源(用户态和内核态的切换),因此协程的开销远远小于线程的开销。 协程本质上就是用户态线程,将调度的代码在用户态重新实现。因为子程序切换不是线程切换而是由程序自身...

JAVA-Socket通信 聊天室(客户端)

关于聊天室中客户端部分 整体思路 客户端的代码用到的类如上所示,其中 entity 中的两个类仅用于界面,所以不会进行介绍。 Thread 客户端线程,一个线程表示一个用户,处理服务器发来的消息,在里面用了 currentFrame 这个变量来表示当前窗口。 //客户端线程 监听服务器发送过来的信息 public class Thread extends Thread { ...

JAVA-Socket通信 聊天室(服务端)

关于聊天室中服务器部分 一个聊天室,我们可以将其分为服务端和客户端,而通信的简易过程如下图所示 对于服务器,我们需要做的是1、验证用户登陆信息。2、接收用户发送的信息并转发给目标用户 整体思路 Server端 UserService 用于用户账号管理,预先创建几个账号,然后存到文件中,每次服务器执行时,都会将文件中的账号信息读入,同时新创建的用户账号也会存入到文件中去。 ...

JAVA-Socket通信 聊天室

聊天室曾经盛行一时,今天我们就用简单的java代码来复刻他。 一、项目名称 聊天室 二、功能介绍 用Java图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到一个服务器。每个客户端能够输入账号,包括注册功能。 可以实现群聊(聊天记录显示在所有客户端界面)。 完成好友列表在各个客户端上显示,包括头像和用户名。 ...

JAVA-Socket通信 聊天室(工具类)

关于聊天室中工具类部分 整体思路 把要传输的内容封装成了两个类 Response 和 Request,客户端向服务器发起请求,服务器向客户端回应,通过两个类中包含的请求类型来判断需要进行的操作,传输采用ObjectStream。仔细以看其实会发现,这两个类内容很相似。 Request public class Request implements Serializable { ...

TCP连接的建立和释放过程详解(三次握手、四次挥手)

1.TCP是基于连接的协议 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。所谓面向连接,是指通信双方在进行通信之前,事先在双方之间建立起一个完整的、可以彼此沟通的通道,这个通道就是连接。 TCP是基于连接的协议,也就是说,在正式收发数据之前,必须和对方建立可靠的连接。一个TCP连接的建立要经过三次握...

socket简介

1:socket大致介绍 socket编程是一门技术,它主要是在网络通信中经常用到 既然是一门技术,由于现在是面向对象的编程,一些计算机行业的大神通过抽象的理念,在现实中通过反复的理论或者实际的推导,提出了抽象的一些通信协议,基于tcp/ip协议,提出大致的构想,一些泛型的程序大牛在这个协议的基础上,将这些抽象化的理念接口化,针对协议提出的每个理念,专门的编写制定的接口,与其协议一一对应...

数据结构模板

本篇文章旨在介绍基础数据结构模板。 算法竞赛中,利用指针的数据结构跑的太慢,故使用数组来表示的数据结构 包括:单链表 双链表 栈 队列 单调栈 单调队列 KMP Trie树 并查集 堆 一般哈希 字符串哈希 单链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx;...

搜索与图论模板

本篇文章旨在介绍搜索与图论模板。 包括:树与图的存储,拓扑排序,朴素dijkstra,堆优化版dijkstra,Bellman-Ford算法,spfa 算法(队列优化的Bellman-Ford算法),spfa判断图中是否存在负环,floyd算法,朴素版prim算法,Kruskal算法,染色法判别二分图,匈牙利算法 树与图的存储 // 对于每个点k,开一个单链表,存储k所有可以走到的...

飞机大战

一、设计选题 《飞机大战》 二、课题简介 飞机大战是由腾讯公司的微信团队开发的一款微信小游戏,这款游戏以太空主题的画面为游戏背景,由玩家控制飞机,发射炮弹击毁敌方飞机。画面简洁有趣,规则简单易懂,操作便捷易上手。这款游戏不同于腾讯开发的以盈利为目标的其他游戏,抛去了现在游戏的花里胡哨,回归了游戏最简单的目的,仅仅是为了好玩,没有门槛,没有引导用户充钱。让我们们都能够找到童年玩掌机类游戏...