- 博客(8)
- 收藏
- 关注
原创 JAVA服务器/客户端编程之非阻塞式服务器
package my_network_test.feizuse;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import jav.
2022-03-16 11:02:56
1897
3
原创 JAVA服务器/客户端编程之阻塞式客户端
package my_network_test.zuse;import java.io.*;import java.net.Socket;import java.nio.charset.StandardCharsets;public class TCPClient { private final Socket socket; public TCPClient() throws IOException { int port = 4444; Str.
2022-03-15 10:40:25
214
原创 JAVA服务器/客户端编程之阻塞式服务器
package my_network_test.zuse;import java.io.*;import java.net.InetSocketAddress;import java.net.Socket;import java.nio.channels.ServerSocketChannel;import java.nio.channels.SocketChannel;import java.util.concurrent.*;public class EchoServer { .
2022-03-15 10:38:45
2349
原创 (初学者的福音)windows下实现socket通信(TCP/IP)代码详解——服务端篇
目前关于 socket 通信的教程并不少,但是存在一个现象:贴了代码的文章,对于代码的注释不够详细,导致读者频繁的去搜索某个函数的参数构成、使用方法等,十分地麻烦。我在进行学习的时候,在程序中的注释写得实在是太过于密密麻麻了,索性写个更详细的笔记,对用到的知识点进行一个综合的整理吧,省得一下子开十几个网页。。。 本文的详解是基于windows环境下用c++实现socket编程这篇文章进行的。因此对于TCP/IP以及socket通信的基础知识就不在赘述了,本文着重于带你一行一...
2021-08-12 16:21:12
8473
6
原创 VisualStudio2019+QT5.14使用LcdNumber显示当前时间
1.创建一个工程:文件-新建-项目 选择Qt GUI Application2.给项目命名,选择项目存储位置3.项目配置点next默认勾选Core , GUI ,Widgets 三项即可。点next如果想要将文件首字母小写,就勾选第一个选项:Lower Case file names。默认无需改动,点击finish,项目就创建完成了。4.解决方案结构如下:.ui 文件为画图工具,双击可以打开qt creator。5.完整代码如下:QTt...
2021-08-04 17:29:15
1209
原创 如何使用map存储自定义数据类型
最简单的map的形式如下:前面的 int 为 key 值,后面的 int 为 value值,当输出 map 时,会根据key 值自动升序排序,十分地方便。map<int,int> m1;但是如果要使用 map 存储一些自定义的数据类型,就相对复杂一些,可以分为两种情况来讨论。1. key 为内置数据类型, value 为自定义数据类型这种情况比较简单,和 map<int,int>这种最简单的 map 没有什么区别,只是将 int 换成 自定义数据类型,并且在输出 .
2021-08-02 18:31:51
7871
1
原创 错误C3848:具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool MyCompare::operator ()(int,int)
今天在跟着黑马程序员的视频教程进行c++中map的排序练习,map输出的时候是默认升序输出的,如果想要实现map的降序输出,就需要写一个仿函数来改变默认排序规则,在map构造函数中添加一个自定义的类,在类中定义仿函数。map<int,int,myCompare>class myCompare{public: bool operator()(int v1, int v2) { //降序 return v1 > v2; }};然后进行降序输出: voi
2021-08-02 16:17:37
1434
2
原创 vector.erase()函数的常见陷阱
对 vector 尾部进行插入和删除操作可以很方便地通过 vector.push_back() 和 vector.pop_back() 函数来进行。但是想要对中间部分的数据进行增删操作,就需要使用到迭代器。为了对迭代器的使用进行学习,我们先定义一个整形数组v,并且给他赋初值:vector<int> v = { 10,20,30,40,50,60,70 };接下来,我们给数组插入5个1000,并且尝试使用迭代器将5个1000全部删除:v.insert(v.begin(),
2021-08-02 13:54:59
1570
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人