android客户端与qt服务端通过socket通信传图片的问题

android客户端:
public void sendData(final String filepath) {
new Thread() {
@Override
public void run() {
try {
Socket socket = new Socket();
// Socket socket = new Socket("192.168.1.108", 8888);//创建Socket实例,并绑定连接远端IP地址和端口
socket.connect(new InetSocketAddress("192.168.1.108", 8888));
Log.i("线程反馈1", "创建成功!");
// DataOutputStream out = new DataOutputStream(socket.getOutputStream());
// out.writeUTF("Helloworld");
//获取输出流
OutputStream ou = socket.getOutputStream();
//读取服务器响应
BufferedReader bff = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String line = null;
String buffer = "";
while ((line = bff.readLine()) != null) {
buffer = line + buffer;
}
//向服务器发送文件
File file = new File(filepath);
if (file.exists()) {
FileInputStream fileInput = new FileInputStream(filepath);
DataOutputStream dos = new DataOutputStream(ou);
// 文件名
dos.writeUTF(file.getName());
byte[] bytes = new byte[1024];
int length = 0;
while ((length = fileInput.read(bytes)) != -1) {
dos.write(bytes, 0, length);
}
//告诉服务端,文件已传输完毕
socket.shutdownOutput();
fileInput.close();
dos.close();
}
//关闭各种输入输出流
ou.flush();
// bff.close();
ou.close();
socket.close();
} catch (Exception e) {
Log.i("线程反馈", "线程异常!");
}
}
}.start();
}
qt服务端:
void MainWindow::readMessage()
{
QByteArray array;
quint32 data_len = 0;
quint32 len = 0xffffffff;
//struct Head head;

while(m_tcpSocket->waitForReadyRead(5000)){
    qDebug()<<"bytesAvailable"<<endl;
    if(data_len == 0){
        QDataStream in(m_tcpSocket);
        in >> len;
        qDebug("datalen:%d",len);
    }
    data_len += m_tcpSocket->bytesAvailable();
    array.append((QByteArray)m_tcpSocket->readAll());
    qDebug()<<data_len<<endl;
    if(data_len == len){
        qDebug()<<"ok,all bytes revd"<<endl;
        break;
    }
}
qDebug()<<array;
qDebug("recvd len:%d",data_len);

QPixmap picture;
picture.loadFromData(array,"jpeg");
picture.save("F:/test/test.jpg","jpg",-1);

}
是哪出了问题,传字符串还有反应,传图片一直没反应

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
socket通信中;服务端瞬间write3次;客户端只read了一次;如何在客户端区分这三个数据

socket通信中;服务端瞬间write了3次;客户端只read了1次;如何在客户端区分这三个数据;已经接受的数据如何区分;

用qt5 socket写的服务器和客户端可以连接,但客户端不能给服务器传数据

服务器头文件/widget.h ``` #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QtNetwork> class QTcpServer; class QTcpSocket; namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void readMessage(); //void DataReceived(); private: Ui::Widget *ui; QTcpServer *tcpServer; QTcpSocket *tcpSocket; QString message1; }; #endif // WIDGET_H ``` 服务器主函数/main.cpp ``` #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); } ``` 服务器源文件/widget.cpp ``` #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); tcpServer=new QTcpServer(this); tcpServer->listen(QHostAddress::Any,6666); connect(tcpServer,SIGNAL(newConnection()),this,SLOT(readMessage())); qDebug()<<"2"; } Widget::~Widget() { delete ui; } void Widget::readMessage() { QTcpSocket *clientConnection=tcpServer->nextPendingConnection(); qDebug()<<"2"; message1=clientConnection->readAll(); qDebug()<<message1; ui->statusLabel->setText(message1); qDebug()<<"1"; } ``` 客户端头文件/widget.h ``` #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QtNetwork> class QTcpSocket; namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void newConnect(); void on_pushButton_clicked(); private: Ui::Widget *ui; QTcpSocket *tcpSocket; }; #endif // WIDGET_H ``` 客户端主函数/main.cpp ``` #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); } ``` 客户端源文件/widget.cpp ``` #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); tcpSocket=new QTcpSocket(this); } Widget::~Widget() { delete ui; } void Widget::newConnect() { tcpSocket->abort(); tcpSocket->connectToHost("localhost",6666); qDebug()<<"631"; } void Widget::on_pushButton_clicked() { newConnect(); tcpSocket->write("2"); } ``` 通过调试发现,服务器和客户端可以连接,但是就是不能**从客户端向服务器**发送数据,qt入门级别,请指教,谢谢啦

Qt Socket 高速通信问题

Qt Socket网络通信中,可不可把接收缓区开大,这样会有影响吗?使用UDP进行高速通信中的丢包问题怎么解决啊?两台电脑直接链接的

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); } }

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 tcp服务端应该怎样正确关闭,我反复开关tcp的服务端,客户端连接后,会出现程序异常

服务器第一次开启(RUN)的时候,客户端端连接上来是没有问题的。然后我关闭(STOP)服务器,再开启,客户端连接上来,就会程序异常。 我在处理有新连接的信号的槽函数里(即v_SlotConnection)做了打印,当第二次开启服务器,客户端连接上会两次进入v_SlotConnection,然后就程序异常了。bug解决了,是因为我把newConnection放在开始的按钮里,放出来就没问题了,原因不明白。 ``` //开始运行tcp服务端 if((ui->buttonrun->text())=="RUN") { qDebug()<<"RUN"; //监听网卡下所有8087 if(false == tcpServer->isListening()) { tcpServer->listen(QHostAddress::Any, 8087); } //监听固定ip下 8087 // tcpServer->listen(QHostAddress(ipAddr), serverPort); ui->buttonrun->setText("STOP"); } else if((ui->buttonrun->text())=="STOP") { qDebug()<<"stop"; ui->linkNumber->display(0); ui->buttonrun->setText("RUN"); //主动和客户端端口断开 if(NULL == tcpSocket) { //清空计数 tcpServer->close(); } else { //倒着断开加入链表的ip地址 int i=clients.length()-1; qDebug()<<i<<"clients.length()"<<clients.length(); while(i>=0) { clients.at(i)->disconnectFromHost(); i--; } tcpServer->close(); } } connect(tcpServer, &QTcpServer::newConnection, this, &ServerWidget::v_SlotConnection); ```

QT下多线程Tcp服务器,请问如何让不同的Socket线程互相通信?

# 其实就是想做一个聊天软件,奈何卡在这里想了半天也不知道怎么做。 # 一个客户端打开一个socket线程,然后在客户端输入消息,再发送给服务器端。 # 那么在服务器端怎么把消息发送给另外一个以及打开的客户端? # 之前用socketDescriptor,但不知道是不是不会用,反正不行。

关于用QT写一个简单客户端与服务器,请问客户端如何获取服务器的文件目录?

客户端服务器通过局域网tcp连接,客户端该怎么把服务器的目录用treeview表示?而且速度尽量要快,要是在服务器把目录生成txt再发给客户端让客户端解析,文件多了会很慢吧?有什么好的方法吗?谢谢了。

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); ..... 希望大神们帮我解决一下,不胜感谢

使用VS下空项目编写的socket程序能否与使用Qt编写的界面直接连接到一起?

使用VS下空项目编写的socket程序能否与使用Qt编写的界面直接连接到一起?

Qt on Android如何让程序后台老后运行

现在在做一个android系统的播放中央控制系统,系统分为三层:上层中控客户端(PC或移动设备上)、中层中控服务器端(Android头盔上)、低层是播放器(Android头盔上)。客户端负责接收用户的输入信息并通过网络通信发送给中控服务器端;中控服务器端负责处理客户端与播放器的通信。 客户端和服务器(无界面)都是用Qt做的,播放器是用Unity做的。现在所有的功能都已经完成了,但服务器端放在Android系统上的后台运行功能,由于我没有Android系统的开发经验不知道如何实现。也在网上找了很久,还是一头雾水,有人可能提供一下具体点的实现方法吗?

socket客户端定时向服务器发数据

想实现一个socket定时发送数据的功能。不用接收。数据从本地计算机的文件中读取。 然后每隔比如200ms发送一百字节。直到把文件读完。读取文件用什么函数好fread 和fwrite 还是CFILE类好。定时器定义在什么地方。怎么实现定时向固定端口发送数据。

Qt5 怎样 把 串口通信 程序 编译到Android 平台上 使用 ?

如题。Qt5 怎样 把 串口通信 程序 编译到Android 平台上 使用 ?现在编好了PC版,但是怎么编译到Android上,似乎有各种不兼容。

在socket中,如何让客户端固定它的端口

我想在socket通信中,让server能判断clinet连上来的是谁。 通常我们写socket通信时,server都这这样写的java: ``` ServerSocket server = new ServerSocket(9090); socket = server.accept(); ``` c++ qt中: ``` tcpserver = new QTcpServer(); tcpserver->listen(QHostAddress::Any,9090); connect(tcpserver,SIGNAL(newConnection()),this,SLOT(connected())); ``` 客户端java和c++都是差不多的。 可是当客户端链接到server时,同一个客户端每次链接所用的端口都是不同的。如何让client链接到server的端口固定下来,不要每次都随机。 我打算用这个实现判断客户端是谁。或者有没有其他更好的办法。

想对wifi小车的串口通信和socket通信有一个细致的了解。

制作WiFi小车的基本原理就是用路由器与单片机之间进行串口通信,手机或电脑连上路由器产生的WIFI,进而可以利用客户端与路由器进行Sockect通信。想对这两个通信有细致的了解,求解答的尽可能详尽一些,如果能有相关的有用的链接能够帮助理解,就更加感激了!单片机是STC89C52RC,路由是GL-iNet的,已经刷过机了。

安卓与linux服务器进行socket通信错误:BrokenPipeError

我在linux上写了个python脚本,作为socket 服务器,安卓作为socket客户端,进行socket通信。linux的ip为192.168.80.100,socket端口为12345。 先启动socket服务器,再启动客户端,用客户端发送消息,服务器可以很好收到,但要对消息进行一段时间的处理,等到再发返回给客户端消息时,python就会出现: ``` BrokenPipeError: [Errno 32] Broken pipe ``` 这是安卓socket客户端代码: ``` import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.view.View.OnClickListener; import android.os.Bundle; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; public class MainActivity extends AppCompatActivity { private TextView result = null; private static final String HOST = "192.168.80.100"; private static final int PORT = 12345; private Socket socket = null; private BufferedReader bufferedReader = null; private PrintWriter printWriter = null; private String string = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText eturl= findViewById(R.id.eturl); Button btn= findViewById(R.id.btn); initSocket(); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String message; message = eturl.getText().toString(); if (socket.isConnected()){ if (!socket.isOutputShutdown()){ Toast.makeText(MainActivity.this,"正在发送,请稍等……",Toast.LENGTH_LONG).show(); sendMsg(message); } } } }); } protected void sendMsg(final String message){ new Thread(new Runnable() { @Override public void run() { if(socket.isConnected()){ if(!socket.isOutputShutdown()){ printWriter.println(message); } } } }).start(); } protected void initSocket(){ new Thread(new Runnable() { @Override public void run() { try{ socket=new Socket(HOST,PORT); bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream())); printWriter=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true); if(socket!=null){ if (socket.isConnected()) { if (!socket.isInputShutdown()) { if ((string = bufferedReader.readLine()) != null) { Log.i("TAG","++"+string); string+=""; handler.sendEmptyMessage(1); } else { //TODO } } } } }catch (Exception e){ e.printStackTrace(); } } }).start(); } public Handler handler; { handler = new Handler() { public void handleMessage(Message msg) { if (msg.what == 1) { Log.i("TAG", "--" + msg); result.setText(new StringBuilder().append(result.getText().toString()).append(string).toString()); } } }; } } ``` 可能是安卓客户端在收到消息前已经关闭了socket,但要怎么解决呢,时间很急,求大神请教!不胜感激

QT socket接收端每一次接收缓冲区数据的延时问题。

我想实现局域网视频传输功能,客户端通过调用摄像头将每一帧画面传送到服务器端,服务器端将获致的画面显示出来,客户端是在Linux系统上,服务器端是在Windows系统上。在客户端中我的QSocket类对象调用write()发送数据流,服务器端readyread()信号关联的槽函数中用readAll()来读取缓冲区中的数据流,但是在读取数据的时候,我发现每一次读取数据后会有几毫秒的延时才会继续读取后来的数据,并且缓冲区每次也只有3472个字节的数据可读取,我的每帧画面大概有300多K,所以正因为这种延时我在客户端发送每帧画面的频率不能过快,大概只能一秒一帧才会正常显示画面。这个问题困扰我很长时间了,我应该怎样处理这种问题??????? 补充,从windows上发送数据给Linux不会有上述问题,视频很流畅。

Qt for Android 如何进行调试

今天尝试使用Qt来进行Android开发,经过一系列配置后, 现在按下构建可以成功生成apk安装包,把安装包拖动到手机上可成功运行, 但是如果直接按下“运行”或“调试”按钮,就会弹出如下信息: ``` No Android arch set by the .pro file. Error while building/deploying project androidTest (kit: Android for (Clang Qt 5.14.1 for Android)) When executing step "Deploy to Android device" ``` 想请教哪位大神可以帮忙看看是怎么回事? 附上配置图片: <img src = "https://img-ask.csdn.net/upload/202004/08/1586285269_236882.jpg" width = "1032" height = "512"> <br> <img src = "https://img-ask.csdn.net/upload/202004/08/1586285287_787901.jpg" width = "877" height = "755"> <br> <img src = "https://img-ask.csdn.net/upload/202004/08/1586285676_531100.jpg" width = "940" height = "313"> <br> <img src = "https://img-ask.csdn.net/upload/202004/08/1586285718_102175.jpg" width = "642" height = "223"> <br> <img src = "https://img-ask.csdn.net/upload/202004/08/1586285819_153410.jpg" width = "657" height = "680">

QT socket通信 槽函数值取不出来

用槽信号取socket的流,槽函数里能debug出来,但是在外面就不能用了。 ``` void RtspThread::recvData() { connect(socket,SIGNAL(readyRead()),this,SLOT(sockRecvData()));//有码流过来执行sockRecvData函数 for(int i=0;i<10;i++) { qDebug()<<buf.size(); Sleep(1000); } } ``` ``` void RtspThread::sockRecvData() { QByteArray recvData; recvData=socket->readAll(); buf.append(recvData); qDebug()<<buf.size(); } ``` 在第二个函数里buf的size一直增加,说明从socket中获得了值,但是第一个函数里面的buf一直为0,不解?

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐