QT平台Socket编程问题

我在QT开启了一个socket服务器端,逻辑是与客户端建立连接后就开启定时器不停的接受和发送数据,但是我用TCP工具创建了一个客户端测试的时候,发现连接可以建立,客户端却没有收到服务器发送的数据,求大家帮我看看是代码哪里逻辑有问题吗,第一次搞socket编程
下面先放个我的开启服务器的函数,这个函数会与客户端建立lian'jie
SOCKET CComm::StartServer()
{
//初始化WSA
WORD sockVersion = MAKEWORD(2, 2);
WSADATA wsaData;
if (WSAStartup(sockVersion, &wsaData) != 0)
{
return 0;
}

//创建套接字
SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (slisten == INVALID_SOCKET)
{
 printf("socket e"
        "rror !");
 return 0;
}

//绑定IP和端口
sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(8765);
sin.sin_addr.S_un.S_addr = inet_addr("192.168.0.107");
if (bind(slisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
{
 printf("bind error !");
}

//开始监听
if (listen(slisten, 5) == SOCKET_ERROR)
{
 printf("listen error !");
 return 0;
}

//循环接收数据
SOCKET sClient;
sockaddr_in remoteAddr;
int nAddrlen = sizeof(remoteAddr);

while (true)
{
 printf("等待连接...\n");
 sClient = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen);
 if (sClient == INVALID_SOCKET)
 {
  printf("accept error !");
  continue;
 }
 printf("接受到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));
 break;
}

int SendTimeout = 1000;   //1000ms
int RecvTimeout = 1000;   //1000ms
setsockopt(sClient, SOL_SOCKET, SO_RCVTIMEO, (char *)&RecvTimeout, sizeof(int));
setsockopt(sClient, SOL_SOCKET, SO_SNDTIMEO, (char *)&SendTimeout, sizeof(int));
connectState = true;

return sClient;

}

然后就是运行QT程序
开启服务器成功后,再开启定时器定时接收
/***********建立本地服务器*******/
void Dialog::on_Btn_StartServer_clicked()
{
SOCKET testsClient = test.StartServer();

if(connectState == true && flag == 0)
 {
     //和上位机通讯的定时器//
    _TCPServerTimeout = new QTimer(this);
    _TCPServerTimeout->start(90);
    connect(_TCPServerTimeout, SIGNAL(timeout()), this, SLOT(_onTCPServerTimeout()));
     flag = 1;
 }

}

void Dialog::_onTCPServerTimeout()
{
int ret;
const char * sendData = "测试,接收到TCP客户端消息!\n";
char revData[255];

while (true)
{
//接收数据
ret = recv(testsClient, revData, 255, 0);
if (ret > 0)
{
 revData[ret] = 0x00;
}

send(testsClient, sendData, strlen(sendData), 0);
}

}

4个回答

首先你的槽函数 _onTCPServerTimeout() 是定时器触发的;
执行这个函数的时候先运行了 ret = recv(testsClient, revData, 255, 0);这个;
如果客户端没数据过来,服务器会一直阻塞在这里,不会往下走,因此不会执行
send(testsClient, sendData, strlen(sendData), 0); 也就不会给客户端发送消息;

解决方法:
你把

ret = recv(testsClient, revData, 255, 0);
if (ret > 0)
{
 revData[ret] = 0x00;
}

注释掉,自己手动对revData添加数据测试一下

SilenceNote
SilenceNote 回复qtchen_1988: 对的,本来应该都要用全局的,结果在局部又定义了
5 个月之前 回复
qtchen_1988
qtchen_1988 回复SilenceNote: 解决了就好,变量重名是不会报错了,因为一个全局的,一个局部的,编译器会找就近的域的变量,如果都是全局变量,重名就会报重定义错误
5 个月之前 回复
qtchen_1988
qtchen_1988 回复SilenceNote: 意思是你把创建socket的描述符给了局部变量,全局变量是不知道的,而你发送数据的时候用的是全局变量的socket 描述符?
5 个月之前 回复
SilenceNote
SilenceNote 谢谢,我手动测试了一下发现revData是可以的,然后又单独测试了一下send函数发现没有数据发出来,才发现我在SOCKET testsClient = test.StartServer();函数接收返回值时与我在文件开头定义的SOCKET testsClient搞混了,返回值接收到局部变量中,send函数却用了全局的SOCKET testsClient,虽然两个变量重名但是没有错误提示,是我的疏忽,谢谢给我提供了解决思路
5 个月之前 回复

感觉好乱啊,Server和Client我都没理清。
说下基本原则
服务端:
accept到客户端口连接后,先向这个客户端发一个数据,然后再开始接收数据
客户端:
connect成功后,先向服务端发送一个数据,然后再开始接收数据

这样你才能在连接后两边都能立刻收到测试数据。

SilenceNote
SilenceNote 这个只有Server的程序,没有Client,我是用另外一个测试工具模拟Client的,谢谢,问题解决了
5 个月之前 回复

你可以先确定一下具体的是哪里出现了问题,socket到底有没有发送数据出去,是socket没有数据发送还是i客户端没有接收到数据?

qq_37397729
qq_37397729 回复SilenceNote: 没有收到数据指的是数据为空还是没反应还是报错?
5 个月之前 回复
SilenceNote
SilenceNote 我调试的时候发现send(testsClient, sendData, strlen(sendData), 0);函数执行了,但是我的客户端没有收到数据
5 个月之前 回复

VS上有WSAGetLastError()和GetLastError()函数可查看错误原因,不知道QT上是否有类似的函数,另外可以在网上找一个 成功的例子参考,并与你的对比,给个网址你参考下https://blog.csdn.net/bailang_zhizun/article/details/78327974

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt Socket 高速通信问题
Qt Socket网络通信中,可不可把接收缓区开大,这样会有影响吗?使用UDP进行高速通信中的丢包问题怎么解决啊?两台电脑直接链接的
qt创建SOCKET编译报错
![图片说明](https://img-ask.csdn.net/upload/201603/23/1458722980_596068.png) 为什么用QT在windows下创建SOCKET套接字会报错,是不是编译器的问题啊,找来找去找不到问题啊。。。。。求大神相助,网络编程新手,还有就是我已经确定包含了WS2_32.lib
Qt 网络编程客户端与主机连不上
利用Qt编写一个客户端的界面,和开发板上的主机进行通信,现在是客户端的connect函数不能与服务器连接。Qt利用的是c的socket相关函数。通过一个线程来创建socket的 部分代码如下: socketfd = socket(AF_INET,SOCK_STREAM,0); if(socketfd < 0) { qDebug()<<"socket error"; perror("socketfd"); exit(1); } memset(&addr,0,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(8000); addr.sin_addr.s_addr = inet_addr("192.168.1.10"); char buf[1024]; memset(buf , 0 , sizeof(buf)); if(::connect(socketfd,(struct sockaddr*)&addr,sizeof(addr)) < 0); { qDebug()<<"connect error"; return; } recv(socketfd,buf,sizeof(buf),0); ..... 希望大神们帮我解决一下,不胜感谢
Qt Creator 和MATLAB 混合编程的问题
最近要开发个信号处理软件,信号处理的算法是Matlab程序编写的。现在涉及到Qt 和Matlab 混合编程的问题,希望有做成功的大神可以指点指点。
Qt图形界面编程该怎么入门
刚学完了C++基础,想学Qt下的图形界面编程,看了《C++GUI Qt4编程》的前面一点,发现有一大堆的函数,宏,信号见都没见过,看起书来很吃力,我是应该怎么看,或者有没有更适合入门的书,有没有大神能帮帮忙推荐一下???
qt C++编程for循环问题
代码如下,为循环生成5个矩形 int i=0; int j=0; for(int n=0;n<5;n++){ QPixmap bg(10,10); QPainter p(&bg); p.setPen(QPen(Qt::white)) p.setBrush(QBrush(Qt::black)); scene->addRect(i,j,i+10,j+10,p.pen(),p.brush()); i=i+10; } scene为QGraphicsScene类对象 生成的5个正方形如下所示,为什么最后一个正方形变成了细长的矩形,想来想去算法没问题啊,求解: ![图片说明](https://img-ask.csdn.net/upload/201412/29/1419834690_81199.png)
QT5中 socket 与 多线程的问题(聊天程序)
大家好 我在用QT5写一个聊天程序 用的是c/c++的封装的socket函数(QT封装的UDP不知道为什么不能正常发包) 问题是这样的: 有两个窗口 1. MainWindow 类的 login,程序启动首先显示它 2. Dialog 类的 chat, 要求登陆成功后才显示它 这两个窗口在main中QApplication a 和 a.exec()之间创建。 login窗口其中一个button点击后可以向服务器发送一个登陆请求,那么,如何 接收这个请求呢?我目前的做法是同样将这个button connect了一个receive函数, 不过只接受一个包,这样实现真的很丑,而且无法做到持续监听(这是chat窗口中的 关键) 我尝试用了c++11的thread来写多线程,传入一个窗口的指针,但好像不允许在子线程里调用窗口类实例的show()之类的函数,报错了(这点也是我很想知道的,类中定义的public成员函数可以在子线程中调用,但是不能调用诸如show(), close()之类的函数) 我刚学QT没多久,参考的很多QT聊天程序都是用QT封装的socket,但是这边用不了,如果一定要用c/c++封装的 有什么好的解决办法来实现吗?
qt开发windows平台蓝牙
我使用qt的蓝牙API开发windows程序,使用的是低功耗蓝牙,在win10 1803和1809版本下使用正常,但在win10 1903和1909下搜索服务时就会报错(未知错误,标准蓝牙使用是正常的),这是什么原因啊
用QT对zigbee编程实现温度采集及数据发送程序
如题,跪求程序,课题是基于zigbee的煤炭自燃温度报警系统设计,求指导思路,求用QT对zigbee的编程。小的谢谢各位大神了
QT socket接收端每一次接收缓冲区数据的延时问题。
我想实现局域网视频传输功能,客户端通过调用摄像头将每一帧画面传送到服务器端,服务器端将获致的画面显示出来,客户端是在Linux系统上,服务器端是在Windows系统上。在客户端中我的QSocket类对象调用write()发送数据流,服务器端readyread()信号关联的槽函数中用readAll()来读取缓冲区中的数据流,但是在读取数据的时候,我发现每一次读取数据后会有几毫秒的延时才会继续读取后来的数据,并且缓冲区每次也只有3472个字节的数据可读取,我的每帧画面大概有300多K,所以正因为这种延时我在客户端发送每帧画面的频率不能过快,大概只能一秒一帧才会正常显示画面。这个问题困扰我很长时间了,我应该怎样处理这种问题??????? 补充,从windows上发送数据给Linux不会有上述问题,视频很流畅。
qt eventFilter的问题
![图片说明](https://img-ask.csdn.net/upload/202001/17/1579250021_653620.png) 我把return QWidget::eventFilter(obj,event); 这行注释了,直接改成return true; 为什么lineEdit的行编辑框在界面上都不显示了。
qt交叉编译everywhere-source报错
编译QT ARM开发环境出现以下错误 进入 qt-everywhere-src-5.14.0下 设置参数如下 ```shell ./configure -v -prefix /home/aron566/qt_everywhere_source -opensource -release -xplatform linux-arm-gnueabi-g++ -no-opengl -no-dbus -no-icu -no-eglfs -no-iconv -skip qtpurchasing -skip qt3d -skip qtcanvas3d -skip qtdeclarative -nomake examples -I/home/aron566/nfs/arm_tslib/include -L/home/aron566/nfs/arm_tslib/lib ``` make 编译后报错如下: ```shell /opt/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/atomic:828:5: note: template argument deduction/substitution failed: In file included from io/../../3rdparty/forkfd/forkfd_atomic.h:29:0, from io/../../3rdparty/forkfd/forkfd.c:93, from io/forkfd_qt.cpp:48: io/../../3rdparty/forkfd/forkfd_c11.h:56:42: note: 'ffd_atomic_int {aka std::__atomic_base<int>}' is not derived from 'volatile std::atomic<_ITp>' atomic_store_explicit(ptr, val, order) ^ io/../../3rdparty/forkfd/forkfd.c:686:9: note: in expansion of macro 'ffd_atomic_store' ffd_atomic_store(&info->pid, pid, FFD_ATOMIC_RELEASE); ^ In file included from ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:45:0, from ../../include/QtCore/qatomic_cxx11.h:1, from ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:53, from ../../include/QtCore/qbasicatomic.h:1, from ../../include/QtCore/../../src/corelib/thread/qatomic.h:46, from ../../include/QtCore/qatomic.h:1, from global/qglobal.h:1296, from global/qt_pch.h:56: /home/aron566/opt/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/atomic:822:5: note: template<class _ITp> void std::atomic_store_explicit(std::atomic<_ITp>*, _ITp, std::memory_order) atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, ^ /home/aron566/opt/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/atomic:822:5: note: template argument deduction/substitution failed: In file included from io/../../3rdparty/forkfd/forkfd_atomic.h:29:0, from io/../../3rdparty/forkfd/forkfd.c:93, from io/forkfd_qt.cpp:48: io/../../3rdparty/forkfd/forkfd_c11.h:56:42: note: 'ffd_atomic_int {aka std::__atomic_base<int>}' is not derived from 'std::atomic<_ITp>' atomic_store_explicit(ptr, val, order) ^ io/../../3rdparty/forkfd/forkfd.c:686:9: note: in expansion of macro 'ffd_atomic_store' ffd_atomic_store(&info->pid, pid, FFD_ATOMIC_RELEASE); ^ Makefile:31236: recipe for target '.obj/forkfd_qt.o' failed make[3]: *** [.obj/forkfd_qt.o] Error 1 make[3]: Leaving directory '/home/aron566/qt-everywhere-src-5.14.0/qtbase/src/corelib' Makefile:222: recipe for target 'sub-corelib-make_first' failed make[2]: *** [sub-corelib-make_first] Error 2 make[2]: Leaving directory '/home/aron566/qt-everywhere-src-5.14.0/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory '/home/aron566/qt-everywhere-src-5.14.0/qtbase' Makefile:73: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2 ``` 不知道有啥解决方法?
qt中tcp网络编程怎么实现子线程访问主线程socket
做一个智能家居项目,实现接受环境信息,和监控视频的客户端!求大神
64位vs2017+32位QT+gdal配置问题
电脑是windows64位 我的vs2017是64位的(x64) qt是5.13(x86) 我在vs2017里面创建了一个qt程序执行gdal库处理数据不会显示处理结果 而如果单纯用vs2017用同样的代码处理数据就会显示处理结果 这里处理数据就是简单的读取一张图片并返回大小 ![图片说明](https://img-ask.csdn.net/upload/201912/18/1576682889_289057.png)![图片说明](https://img-ask.csdn.net/upload/201912/18/1576682910_127939.png)
qt5ct: using qt5ct plugin qt5ct: D-Bus global menu: no报错
基于linux环境RaspberryPi系统 python3 运行一个demo.py 依赖库是qt , qt5ct , pyqt5相关的 运行的时候 报错 根据demo 需要 依赖 qt pyqt5 等模块 安装好 以后 运行demo 报错咯 经检查 demo 代码是没有问题的 在centos7 和 ubuntu 都可以运行 在树莓派系统就报以下错误 : qt5ct: using qt5ct plugin qt5ct: D-Bus global menu: no qwidget :: paintengine : should no longer be called ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576207047_622408.png)
Qt局域网编程 客户端无法连接
我用的qt自带实例进行测试,![图片说明](https://img-ask.csdn.net/upload/201606/26/1466929447_135858.png) 在本机用客户端连接正常,但是使用同局域网下的另一台电脑开启客户端连接超时。 我又调用cmd直接测试连接主机ip延迟,显示正常。 没做过网络编程,求指导???
QT串口编程,如何获取电脑当前可用端口名。
在QT串口编程中,我使用的是第三方类qextserialport,里面好像没有获取端口名的函数,我想把可用的端口名放在下拉框里,手动设置不合理啊。求指导。
QT编程时遇到下面问题怎么办?
![总是这样](https://img-ask.csdn.net/upload/201505/10/1431225369_778439.png)
Linux下QT编程思想,工作流程
大家好!刚入门linux,想问一下大家QT在linux中编程的大概思想是什么啊?或者说是工作流程?比如说是如何判断屏幕动作发生的或者动作发生是如何处理的?希望大家赐教
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
实战:如何通过python requests库写一个抓取小网站图片的小爬虫
有点爱好的你,偶尔应该会看点图片文字,最近小网站经常崩溃消失,不如想一个办法本地化吧,把小照片珍藏起来! 首先,准备一个珍藏的小网站,然后就可以开始啦! 第一步 我们先写一个获取网站的url的链接,因为url常常是由page或者,其他元素构成,我们就把他分离出来,我找到的网站主页下有图片区 图片区内有标题页,一个标题里有10张照片大概 所以步骤是: 第一步:进入图片区的标题页 def getH...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问