tomcat启动是正常的也可以访问,但是一段时间以后servlet不能访问,jsp仍然可以访问。

tomcat启动是正常的也可以访问,但是一段时间以后servlet不能访问,jsp仍然可以访问。tomcat日志没有任何报错。
服务器是阿里云。https的小程序接口。

6个回答

解决了 通过java自带的jvisualvm监控发现 线程里面有死锁,锁定了死锁的代码都是System.out.println(); 去掉就可以了

可能是8086端口被占用,在任务处理器中关闭端口

解决方式1:检测一下tomcat的 server.xml 配置文件,有时候eclipse配置path不生效,如下图图片说明
解决方式2:重新解压一个新的tomcat 启动这个项目。

我目前遇到这个问题,这两个方式 其中一个肯定是能解决的。

443接口开放给外网了吗

查看一下tomcat的日志

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ubuntu 18.10安装了Serv-U,但是安装好之后启动不了程序,单击图表、用终端都启动不料,有了解的师傅能不能指导下,小白初学linux?
ubuntu 18.10安装了Serv-U,但是安装好之后启动不了程序,单击图表、用终端都启动不料,有了解的师傅能不能指导下?![图片说明](https://img-ask.csdn.net/upload/201911/21/1574345515_508457.png)
Serv-U截止目前的所有版本
有人知道Serv-U截止目前的所有版本都有哪些吗?比如Serv-U v6.4 Serv-U v15.0.1.20等
serv-u 15中如何设置对文件中的某个文件夹单独的完全访问权限
比如建立一个test用户可以E盘下面的123文件夹完全访问,而对E盘其他文件夹只具有可读,这个怎么设置,我在目录访问中设置按照顺序为如下: E:\123 RWADN-LCRNI E:\ R---L---I 但是我删除123文件夹中的文件还是提示没有权限
ftp文件传输,serve u,filezilla中文名是问号
求求大家了。谁用过serv u和filezilla呀,serv u采集文件到服务器,再通过filezilla传输,就有一部分中文文件名获取到的是问号,传输失败,但是又不全失败,文件名是英文和数字没问题,考虑是编码问题,谁遇到过这种情况鸭,挠头ing![图片说明](https://img-ask.csdn.net/upload/201912/24/1577152431_868987.jpg)![图片说明](https://img-ask.csdn.net/upload/201912/24/1577152441_711535.jpg)
serv-u 不显示隐藏文件或文件夹
使用serv-u搭建的ftp服务器,如果属性为隐藏的文件或者文件夹,会在客户端的列表中显示出来,不想这些文件在ftp客户端显示出来怎么搞的 因为有些验证文件指向给第三方访问,已经设置了文件为隐藏的,要是不小心删除了好麻烦又得重建
问一个web在tomcat中的servlet简单问题,刚学servlet编译一个文件通不过
在我tomcat中运行后 打开自己编写的一个HelloServlet文件打不开。怎么解决好? 错误500 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.NoClassDefFoundError: exa/HelloServlet (wrong name: HelloServlet) java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:800) java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2823) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:461) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.23 logs. 说HelloServlet没有 不过我这个类是有的 HelloServlet.class编译出来并且放在WEB-INF/Classes/exa里面了。 其中web.xml是这样子写的 <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>exa.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/serv</url-pattern> </servlet-mapping> 还有HelloServlet文件编译成功前是这样写的 import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.annotation.WebServlet; class HelloServlet extends HttpServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("HelloWorld I am Servlet"); } }
通过ubuntu写的udp服务器运行在VM的虚拟机上,然后windos用Netassist却无法发送数据过去,请问是为何啊?
#include <sys/types.h> #include <sys/socket.h> #include <pthread.h> #include <netinet/in.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #define SERV_PORT 5588 int main(int argc, char **argv) { int sock_fd; char rcv_buff[512]; struct sockaddr_in client_addr; struct sockaddr_in server_addr; int client_len; int rcv_num = -1; if ((sock_fd = socket(AF_INET, SOCK_DGRAM,0)) < 0) { perror("socket create error\n"); exit(1); } memset(&server_addr,0,sizeof(struct sockaddr_in)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(SERV_PORT); server_addr.sin_addr.s_addr = htonl(INADDR_ANY); client_len = sizeof(struct sockaddr_in); if (bind(sock_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_in)) < 0) { perror("bind error.\n"); exit(1); } while (1) { rcv_num= recvfrom(sock_fd, rcv_buff, sizeof(rcv_buff), 0, (struct sockaddr*)&client_addr, &client_len); if (rcv_num>0) { rcv_buff[rcv_num] = '\0'; printf("%s %u says: %s\n",inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port),rcv_buff); } else { perror("recv error\n"); break; } } close(sock_fd); return 0; } ![图片说明](https://img-ask.csdn.net/upload/201911/23/1574439219_327602.png)![图片说明](https://img-ask.csdn.net/upload/201911/23/1574439225_93633.png) 麻烦大手帮忙看看代码是有什么问题还是设置上?防火墙那些都已经关闭了
安卓的问题,,用夜神模拟器打开运行程序会崩溃
左图是定义在mysocket类中的方法recv_from_serv,右图是在另一个类中调用这个方法,我定义了puclic string reply去接收,但是为什么程序一运行就会崩溃呢?? 我把recv_from_serv屏蔽的话就不会崩溃。是接收的变量定义不对吗?请高手指导下。![图片说明](https://img-ask.csdn.net/upload/201909/08/1567934977_211349.jpg)![图片说明](https://img-ask.csdn.net/upload/201909/08/1567934982_901851.jpg)
java nio的select和linux的epoll有什么区别?
#### 最近在看关于epoll和select相关问题,但是并没有发现java的select和linux的epoll有什么区别 #### java的nio select代码如下 ``` import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.nio.charset.Charset; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.UUID; public class NioServer { private static Map<String, SocketChannel> clientMap = new HashMap<>(); public static void main(String[] args) throws IOException { ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); serverSocketChannel.configureBlocking(false); ServerSocket serverSocket = serverSocketChannel.socket(); serverSocket.bind(new InetSocketAddress(8899)); Selector selector = Selector.open(); serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); while (true) { try { /** * 程序会卡在select()函数,当客户端有动作了,比如连接上了,或者是发送消息过来了,服务端才会继续走 * 当第一个客户端连接上并且是selectionKey.isAcceptable(),代码就又重新卡到了select()函数上 * 等待客户端的再次操作(无论是哪个客户端) */ selector.select(); /** * selector.selectedKeys()这段代码可以从中知道是哪个客户端,执行了什么操作 * */ Set<SelectionKey> selectionKeys = selector.selectedKeys(); selectionKeys.forEach((selectionKey) -> { final SocketChannel client; try { if (selectionKey.isAcceptable()) { ServerSocketChannel server = (ServerSocketChannel) selectionKey.channel(); /** * 这代代码获取了真正的客户端socket句柄 */ client = server.accept(); client.configureBlocking(false); /** * 这句话如果不写,就相当于没有注册当消息可读时的回调函数,当客户端发送消息过来的时候 * 服务端的selector.selectedKeys()就永远不会受到这类消息 */ client.register(selector, SelectionKey.OP_READ); String key = "[" + UUID.randomUUID().toString() + "]"; clientMap.put(key, client); } else if (selectionKey.isReadable()) { client = (SocketChannel) selectionKey.channel(); ByteBuffer readBuffer = ByteBuffer.allocate(1024); int count = client.read(readBuffer); if (count > 0) { readBuffer.flip(); Charset charset = Charset.forName("utf-8"); String recvMsg = String.valueOf(charset.decode(readBuffer).array()); System.out.println(client + ":" + recvMsg); String sendKey = null; for (Map.Entry<String, SocketChannel> stringSocketChannelEntry : clientMap.entrySet()) { if (stringSocketChannelEntry.getValue() == client) { sendKey = stringSocketChannelEntry.getKey(); break; } } for (Map.Entry<String, SocketChannel> stringSocketChannelEntry : clientMap.entrySet()) { SocketChannel socketChannel = stringSocketChannelEntry.getValue(); ByteBuffer writeBuffer = ByteBuffer.allocate(1024); writeBuffer.put((sendKey + ": " + recvMsg).getBytes()); writeBuffer.flip(); socketChannel.write(writeBuffer); } } } } catch (Exception ex) { ex.printStackTrace(); } }); selectionKeys.clear(); } catch (Exception e) { e.printStackTrace(); } } } } ``` #### linux的epoll的c代码如下 ``` #include <iostream> #include <sys/socket.h> #include <sys/epoll.h> #include <netinet/in.h> #include <arpa/inet.h> #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <errno.h> #include <cstring> using namespace std; #define MAXLINE 5 #define OPEN_MAX 100 #define LISTENQ 20 #define SERV_PORT 5000 #define INFTIM 1000 void setnonblocking(int sock) { int opts; opts=fcntl(sock,F_GETFL); if(opts<0) { perror("fcntl(sock,GETFL)"); exit(1); } opts = opts|O_NONBLOCK; if(fcntl(sock,F_SETFL,opts)<0) { perror("fcntl(sock,SETFL,opts)"); exit(1); } } int main(int argc, char* argv[]) { int i, maxi, listenfd, connfd, sockfd,epfd,nfds, portnumber; ssize_t n; char line[MAXLINE]; socklen_t clilen; if ( 2 == argc ) { if( (portnumber = atoi(argv[1])) < 0 ) { fprintf(stderr,"Usage:%s portnumber/a/n",argv[0]); return 1; } } else { fprintf(stderr,"Usage:%s portnumber/a/n",argv[0]); return 1; } //声明epoll_event结构体的变量,ev用于注册事件,数组用于回传要处理的事件 struct epoll_event ev,events[20]; //生成用于处理accept的epoll专用的文件描述符 //创建一个epoll文件描述符 epfd=epoll_create(256); struct sockaddr_in clientaddr; struct sockaddr_in serveraddr; listenfd = socket(AF_INET, SOCK_STREAM, 0); //把socket设置为非阻塞方式 //setnonblocking(listenfd); //设置与要处理的事件相关的文件描述符 ev.data.fd=listenfd; //设置要处理的事件类型 ev.events=EPOLLIN|EPOLLET; //ev.events=EPOLLIN; //注册epoll事件,将socket文件描述符listenfd的ev事件注册到epoll上 epoll_ctl(epfd,EPOLL_CTL_ADD,listenfd,&ev); memset(&serveraddr, sizeof(serveraddr) ,0); serveraddr.sin_family = AF_INET; char *local_addr="127.0.0.1"; inet_aton(local_addr,&(serveraddr.sin_addr));//htons(portnumber); serveraddr.sin_port=htons(portnumber); //先bind再监听 bind(listenfd,(sockaddr *)&serveraddr, sizeof(serveraddr)); listen(listenfd, LISTENQ); maxi = 0; for ( ; ; ) { //等待epoll事件的发生 //param epfd表示将监听epfd的事件 //param events表示容器,一旦有事件发生,events数组会被填充 nfds=epoll_wait(epfd,events,20,500); //处理所发生的所有事件 for(i=0;i<nfds;++i) { if(events[i].data.fd==listenfd)//如果新监测到一个SOCKET用户连接到了绑定的SOCKET端口,建立新的连接。 { connfd = accept(listenfd,(sockaddr *)&clientaddr, &clilen); if(connfd<0){ perror("connfd<0"); exit(1); } //setnonblocking(connfd); char *str = inet_ntoa(clientaddr.sin_addr); cout << "accapt a connection from " << str << endl; //设置用于读操作的文件描述符 ev.data.fd=connfd; //设置用于注测的读操作事件 ev.events=EPOLLIN|EPOLLET; //ev.events=EPOLLIN; //注册ev epoll_ctl(epfd,EPOLL_CTL_ADD,connfd,&ev); } else if(events[i].events&EPOLLIN)//如果是已经连接的用户,并且收到数据,那么进行读入。 { cout << "EPOLLIN" << endl; if ( (sockfd = events[i].data.fd) < 0) continue; if ( (n = read(sockfd, line, MAXLINE)) < 0) { if (errno == ECONNRESET) { close(sockfd); events[i].data.fd = -1; } else std::cout<<"readline error"<<std::endl; } else if (n == 0) { close(sockfd); events[i].data.fd = -1; } line[n] = '/0'; cout << "read " << line << endl; //设置用于写操作的文件描述符 ev.data.fd=sockfd; //设置用于注测的写操作事件 ev.events=EPOLLOUT|EPOLLET; //修改sockfd上要处理的事件为EPOLLOUT //epoll_ctl(epfd,EPOLL_CTL_MOD,sockfd,&ev); } else if(events[i].events&EPOLLOUT) // 如果有数据发送 { sockfd = events[i].data.fd; write(sockfd, line, n); //设置用于读操作的文件描述符 ev.data.fd=sockfd; //设置用于注测的读操作事件 ev.events=EPOLLIN|EPOLLET; //修改sockfd上要处理的事件为EPOLIN epoll_ctl(epfd,EPOLL_CTL_MOD,sockfd,&ev); } } } return 0; } ``` #### 从上面两段代码看好像基本思想都是一样的,并没有传说中的select不知道发生的事件,只能通过循环去判断的情况。 #### 但是后来我又在网上找了一段linux的select实现的网络io代码 ``` #include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<unistd.h> #include<stdlib.h> #include<errno.h> #include<arpa/inet.h> #include<netinet/in.h> #include<string.h> #include<signal.h> #define MAXLINE 1024 #define LISTENLEN 10 #define SERV_PORT 6666 int main(int argc, char **argv) { int i, maxi, maxfd, listenfd, connfd, sockfd; int nready, client[FD_SETSIZE]; ssize_t n; fd_set rset, allset; char buf[MAXLINE]; socklen_t clilen; struct sockaddr_in cliaddr, servaddr; listenfd = socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(SERV_PORT); bind(listenfd, (struct sockaddr*) &servaddr, sizeof(servaddr)); listen(listenfd, LISTENLEN); maxfd = listenfd; /* initialize */ maxi = -1; /* index into client[] array */ for (i = 0; i < FD_SETSIZE; i++) client[i] = -1; /* -1 indicates available entry */ FD_ZERO(&allset); FD_SET(listenfd, &allset); for ( ; ; ) { rset = allset; /* structure assignment */ nready = select(maxfd+1, &rset, NULL, NULL, NULL); if (FD_ISSET(listenfd, &rset)) /* new client connection */ { clilen = sizeof(cliaddr); connfd = accept(listenfd, (struct sockaddr*) &cliaddr, &clilen); #ifdef NOTDEF printf("new client: %s, port %d\n", inet_ntop(AF_INET, &cliaddr.sin_addr, 4, NULL), ntohs(cliaddr.sin_port)); #endif for (i = 0; i < FD_SETSIZE; i++) if (client[i] < 0) { client[i] = connfd; /* save descriptor */ break; } if (i == FD_SETSIZE) { printf("too many clients"); exit(0); } FD_SET(connfd, &allset); /* add new descriptor to set */ if (connfd > maxfd) maxfd = connfd; /* for select */ if (i > maxi) maxi = i; /* max index in client[] array */ if (--nready <= 0) continue; /* no more readable descriptors */ } for (i = 0; i <= maxi; i++) /* check all clients for data */ { if ( (sockfd = client[i]) < 0) continue; if (FD_ISSET(sockfd, &rset)) { if ( (n = read(sockfd, buf, MAXLINE)) == 0)/* connection closed by client */ { close(sockfd); FD_CLR(sockfd, &allset); client[i] = -1; } else write(sockfd, buf, n); if (--nready <= 0) break; /* no more readable descriptors */ } } } } ``` #### 从这段代码里面确实是可以看出是通过循环判断的,我的问题是java的select是不是就是linux的epoll的思想?
在centos6.9上注册自己开发的netfilter内核模块 系统重启,有大神帮看下?
自己写的一个NAT功能,挂载pre routing 和 post routing两个钩子函数。但是insmod 模块后,系统直接重启。我尝试注掉钩子函数内部的内容后,不重启了,但是rmmod时 又重启。说明可能是挂载有问题, 但是找不到问题出在哪。 ``` { nfhk_serv_in.hook = nf_hook_proc_in; nfhk_serv_in.pf = PF_INET; nfhk_serv_in.hooknum = NF_INET_PRE_ROUTING; nfhk_serv_in.priority = NF_BR_PRI_FIRST; //ret = nf_register_hook(&nfhk_serv_in); if (ret != 0) return ret; nfhk_serv_out.hook = nf_hook_proc_out; nfhk_serv_out.pf = PF_INET; nfhk_serv_out.hooknum = NF_INET_POST_ROUTING; nfhk_serv_out.priority = NF_BR_PRI_FIRST; ret = nf_register_hook(&nfhk_serv_out); if (ret != 0) return ret; } ```
android配置文件时出错,但是APP正常运行
![图片说明](https://img-ask.csdn.net/upload/201507/07/1436254196_960387.png) 这个是什么情况?求指点 com.Com_send_serv has no default constructor validates resource references inside Android xml files com.Com_send_serv is not assignable to android.app.service validates resource references inside Android xml files
C++ Linux网络编程,超简单的例子,就是不知道什么原因,客户端收不到消息
综述:就是客户端和服务端的一次通信,但是总也运行不到预期的结果,运行结果见最后 服务端:做一件事:接受客户端的TCP链接后,向客户端发送一个字符串,但是总在发送的地方返回值为0.求解。。。。 ``` #include<iostream> #include<netinet/in.h> #include<sys/types.h> #include<sys/socket.h> #include<unistd.h> #include<string.h> #include<time.h> using namespace std; int main(int argc,char* argv[]) { int listenfd,confd; sockaddr_in recaddr; char receiveline[100]="I have received the msg\r\n"; listenfd = socket(PF_INET,SOCK_STREAM,0); if(listenfd<0) { cout<<"error socket"<<endl; return 0 ; } bzero(&recaddr,sizeof(recaddr)); recaddr.sin_family = PF_INET; recaddr.sin_addr.s_addr = INADDR_ANY; recaddr.sin_port = htons(7999); if(bind(listenfd,(sockaddr*)&recaddr,sizeof(recaddr))<0) { cout<<"bind error"<<endl; return 0; } if(listen(listenfd,20)<0) { cout<<"listen error"<<endl; return 0; } for(;;) { if(confd = accept(listenfd,(sockaddr*)NULL,NULL)<=0) { cout<<"connect error"<<endl; return 0; } cout<<receiveline<<endl; if(send(confd,receiveline,strlen(receiveline),0)<0) { **//每次都会走到这里面来,不知道为什么这个地方发送的数据为0** cout<<"send empty msg"<<endl; return 0; } if(close(confd)<0) { cout<<"faile to close socket"<<endl; return 0; } } cout<<"end of program"<<endl; return 0; } ``` 客户端: ``` #include<iostream> #include<netinet/in.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<arpa/inet.h> #include<unistd.h> using namespace std; int main(int argc,char* argv[]) { if(argc!=2) { cout<<"wrong input"<<endl; return 0; } int sendfd,n; sockaddr_in addr; bzero(&addr,sizeof(addr)); sendfd = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); if(sendfd<0) { cout<<"error in socket"<<endl; return 0; } addr.sin_family = PF_INET; addr.sin_port = htons(7999); addr.sin_addr.s_addr= inet_addr("127.0.0.1"); cout<<"ready to connect"<<sendfd<<endl; if(connect(sendfd,(sockaddr*)&addr,sizeof(addr)) < 0) { cout<<"connecting fail"<<endl; return 0; } cout<<"ready to read:"<<sendfd<<endl; char receiveline[100] = {0}; while( (n = recv(sendfd,receiveline,100,0)) > 0 ) { cout<<"n:"<<n<<endl; receiveline[n] = 0; if(fputs(receiveline,stdout)==EOF) { cout<<"error"<<endl; return 0; } } if(n<0) {cout<<"error"<<endl;} cout<<"end of program"<<endl; return 0; } ``` 目前程序的输出为: 服务端: [joker@localhost serv]$ ./SocketServ I have received the msg send empty msg 客户端: [joker@localhost cli]$ ./SocketCli 127.0.0.1 ready to connect3 ready to read:3 end of program 这问题搞了我两天了,求大侠们解。。。
socket connect超时设置时,socket连接失败但是 select可写返回值总是1的问题
我的本意是通过select超时来快速返回socket失败的问题,代码如下 但是我现在的IP都是不可用的ping不通,为什么select总是返回1 呢? ``` /****************************** * Time out for connect() * Write by Kerl W ******************************/ #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #include <sys/time.h> #include <netinet/in.h> #include <sys/ioctl.h> #include <fcntl.h> #include <errno.h> #include <time.h> #define TIME_OUT_TIME 10 //connect超时时间20秒 #define true 1 #define false 0 int main(int argc , char **argv) { int flags, error = 0,len,ret; struct sockaddr_in serv_addr; int sockfd = socket(AF_INET, SOCK_STREAM, 0); if(sockfd < 0) exit(1); //以服务器地址填充结构serv_addr len = sizeof(int); struct timeval tm; fd_set set; unsigned long ul = 1; //设置sockaddr_in结构体中相关参数 serv_addr.sin_family = AF_INET; //地址族 IPV4 serv_addr.sin_port = htons(80); //设置为要连接的服务器的端口号(short数据转化为网络数据) serv_addr.sin_addr.s_addr = inet_addr("192.168.3.64"); //设置服务器的IP地址(字符串转化为整形) // ioctl(sockfd, FIONBIO, &ul); //设置为非阻塞模式 flags = fcntl(sockfd, F_GETFL, 0); if(fcntl(sockfd, F_SETFL, flags | O_NONBLOCK) < 0){ //close(m_socket); return -2; } if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) <0) { if (errno != EINPROGRESS){ printf("errno != EINPROGRESS\n"); return -1; } tm.tv_sec == TIME_OUT_TIME; tm.tv_usec = 0; FD_ZERO(&set); FD_SET(sockfd, &set); ret = select(sockfd+1, NULL, &set, NULL, &tm); if( ret > 0) { printf("ret is %d fd_set = %d sockfd = %d\n",ret,sizeof(fd_set),sockfd); // getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, (socklen_t *)&len); len = sizeof(error); if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, &len) < 0){ return -1; /* Solaris pending error */ } } else if(ret == 0) { close(sockfd); printf( "Connect time out !\n"); return -1; } /* 恢复套接字的文件状态标志并返回 */ fcntl(sockfd, F_SETFL, flags); /* restore file status flags */ if (error) { close(sockfd); /* just in case */ errno = error; return(-2); } printf( "Connected!\n"); } } ```
需要制作一个tcp计算器,客户端出了问题
1.不删除 下面这段代码的话,会出错. if (argc !=2){ //number of parameters wrong perror("Input: ./server12 <IP address of the server> to use"); exit(1); } 2.删除了之后,可以编译但运行的时候会提示Segmentation fault (core dumped); 3.修改了 servaddr.sin_addr.s_addr= inet_addr(argv[1]);改为htonl(INADDR_ANY),2的错误已经解决,但是网络连接失败..Fail to connect to the server: Connection refused #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> #include <arpa/inet.h> #include <unistd.h> #define MAXLINE 1024 #define SERV_PORT 10010 int main(int argc, char **argv) {/ int sockfd; struct sockaddr_in servaddr; char recvmsg[MAXLINE]; unsigned num1, num2, result; char operator, valid; char str1[] = "Valid", str2[] = "Invalid", valid_s[10]; char sendmsg[MAXLINE]; if (argc !=2){ perror("Input: ./server12 <IP address of the server> to use"); exit(1); } if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) <0){ perror("Socket initialize failed"); exit(2); } memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr= inet_addr(argv[1]);/ servaddr.sin_port = htons(SERV_PORT); if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr))<0){ perror("Problem in connecting to the server"); exit(3); } while(1){ printf("%s\n", "Please enter the first integer"); while (scanf("%u", &num1) != 1){ while(getchar() != '\n'); printf("%s\n", "Input type illegal"); printf("%s\n", "Please enter the first integer again"); } while(getchar() != '\n'); // get operation printf("%s\n", "Please enter the operation "); while((scanf("%c", &operator)!= 0) && (operator !=43 &&operator != 45 && operator!= 120 && operator!=47)){ while(getchar() != '\n'); printf("%s\n", "Operator is illegal or does not exist"); printf("%s\n", "Please check the input"); } while(getchar() != '\n'); // get the second number to operate printf("%s\n", "Please enter the second integer"); while (scanf("%u", &num2) != 1){//check input type while(getchar() != '\n'); printf("%s\n", "Input type illegal"); printf("%s\n", "Please enter the second integer again"); } while(getchar() != '\n'); memcpy(sendmsg, &operator, 1); memcpy(sendmsg + 1, &num1, 4); memcpy(sendmsg + 5, &num2, 4); //send message send(sockfd, sendmsg, MAXLINE, 0); printf("Message sent to the server: %u %c %u\n", num1, operator, num2); if (recv(sockfd, recvmsg, MAXLINE,0) == 0){ perror("The server has terminated "); exit(4); }else{ memcpy(&result, recvmsg + 9, 4); valid = recvmsg[13]; if(valid == '1'){//success strncpy(valid_s, str1, sizeof(str1)); }else//failed { strncpy(valid_s, str2, sizeof(str2)); } printf("Result: %u %c %u = %d, %s.\n", num1, operator, num2, result, valid_s);//print the result } } exit(0); }
大家有没有遇到过这种情况,weblogic主服务器能启动,节点服务器无法启动。这是怎么回事?
如图:There are 1 nested errors: weblogic.management.ManagementException: [Management:141223]The server name serv er specified with -Dweblogic.Name does not exist. The configuration includes the following servers {AdminServer,Server}. at weblogic.management.provider.internal.RuntimeAccessImpl.initialize(Ru ntimeAccessImpl.java:424) at weblogic.management.provider.internal.RuntimeAccessService.start(Runt imeAccessService.java:49) at weblogic.t3.srvr.ServerServicesManager.startService(ServerServicesMan ager.java:461) at weblogic.t3.srvr.ServerServicesManager.startInStandbyState(ServerServ icesManager.java:166) at weblogic.t3.srvr.T3Srvr.initializeStandby(T3Srvr.java:895) at weblogic.t3.srvr.T3Srvr.startup(T3Srvr.java:572) at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:471) at weblogic.Server.main(Server.java:74)
nodejs接收ajax提交的数据,req.on("data",......)不执行
客户端代码:$.ajax({ url:"http://127.0.0.1:1337/getOrder", dataType:"jsonp", data:{"state":"1"}, type:"get", success:function (chunk) { alert("成功"+chunk.result); }, error:function (err) { alert("失败"+err.message); } }); nodejs代码:var exp_serv=express(); exp_serv.get("/getOrder",function (req,res) { console.log("客户端连接已建立:"+req.host); req.on("data",function (data) { console.log(data.toString()); res.send(data); }) /**设置响应头允许ajax跨域访问**/ res.setHeader("Access-Control-Allow-Origin","*"); /*星号表示所有的异域请求都可以接受,*/ res.setHeader("Access-Control-Allow-Methods","GET","POST"); }) exp_serv.listen(1337,"127.0.0.1");
oracle关联表查询记录表最新一条记录?
``` select * from ( select a.*,t1.*,row_number() over (partition by t1.serial_no order by t1.cust_work_hours desc ) rn from HISTORY a left join ( SELECT to_char(so.FAILURE_DATE, 'yyyy-MM-dd') work_hours, to_char(cmi.SERIAL_NO) serial_no, nvl(so.CUST_WORK_HOURS, 0) cust_work_hours FROM SERV_ORDER so LEFT JOIN COMM_MACHINE_INFO cmi ON so.MACHINE_ID = cmi.MACHINE_ID WHERE so.SERV_TYPE_ID = 5 UNION ALL SELECT to_char(CREATE_DATE, 'yyyy-MM-dd') work_hours, to_char(MACHINE_NO) serial_no, nvl(CUST_WORK_HOURS, 0) cust_work_hours FROM MAINTAIN_ORDER WHERE IS_MAINTAIN = 0) t1 on a.TMS_MACID = t1.serial_no ) t2 where t2.rn =1; ``` 我这上面一段sql,查询的是一个一对多的关系,取多方最新的一条数据,现在我HISTORY表里有2万条数据,最后查询出来的少了几千条,也就是说 我多方那个表里面没有记录,它取不了,然后就不显示吗?不应该有一条空数据出来吗,我是以history为主表left join的
TCP/IP详解卷2源代码怎么实现?
下面程序是第一章的习题,向一个服务器发送消息获取时间.在linux用codeblocks运行出错.而且卷2里面有大量源代码,不知道从何学起,怎么实现? #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFFERSIZE 150 int main() { struct sockaddr_in serv; char buff[BUFFERSIZE]; int sockfd, n; if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) printf("socket error"); bzero((char *) &serv, sizeof(serv)); serv.sin_family = AF_INET; serv.sin_addr.s_addr = inet_addr("140.252.1.32"); serv.sin_port = htons(13); if (sendto(sockfd, buff, BUFFERSIZE, 0, (struct sockaddr *) &serv, sizeof(serv)) != BUFFERSIZE) printf("sendto error"); if ((n = recvfrom(sockfd, buff, BUFFERSIZE, 0, (struct sockaddr *) NULL, (int *) NULL)) < 2) printf("recvfrom error"); buff[n - 2] = 0; printf("%s\n", buff); exit(0); } ![图片说明](https://img-ask.csdn.net/upload/201505/27/1432722967_230063.png)
运用存储过程和游标,帮助写一个查询的语句,最后输出结果,可以先不考虑笛卡尔积的问题
Comm.serv:用户表 正常在用用户:state = 2HA CDMA用户:product_id = 379 Serv_id:用户编码 acct_nbr:用户号码 Comm.serv_acct:账户用户关联关系表 有效数据 state='10A' Acct_id:账户编码 Comm.acct:账户表 Acct_name:账户名称 Acct.acct_balance:余额表 Balance:余额 Acct.ACCT_ITEM_201805:5月费用表 Amount:费用 Acct.ACCT_ITEM_201806:6月费用表 Amount:费用 Bill.acct_item_aggr_11807:实时费用表(在billdb) Charge 实时费用 Acct.acct_credit:信用度表 Credit_amount:信用度值 Sms_info:短信发送表 Id:唯一值,消息ID Msisdn:电话号码 FLAG:SEND MSG:短信内容 Get_date:短信发送时间 Send_date = get_date 其他字段填空 欠费=余额-4、5月份话费-实时话费-信用度 要求: 1、统计出来所有用户欠费金额,统计信息包括:账户名称 ,账户ID,用户ID,余额、4月份话费、5月份话费、实时话费、信用度、欠费金额 2、对于欠费的用户,发送短信。短信内容:“xxx您好,截止到yyyy-mm-dd hh24:mi:ss,您已经欠费xx元,请您及时缴费! ” select a.serv_id, --用户id c.acct_name, --账户名称 c.acct_id, --账户id d.balance --余额 e.amount, --四月话费 f.amount, --五月话费 g.charge, --实时费用 h.credit_amount --信用度 (d.Balance - e.amount - f.amount - g.charge - h.credit_amount) as Arrearage --欠费金额 from Comm.serv a, --用户表 Comm.serv_acct b, --账户用户关联关系表 Comm.acct c, --账户表 Acct.acct_balance d, --余额表 (select serv_id, sum(amount) amount from acct.ACCT_ITEM_201805 group by serv_id) e, --五月话费 (select serv_id, sum(amount) amount from acct.ACCT_ITEM_201806 group by serv_id) f, --六月话费 bill.acct_item_aggr_11807@bill_228 g,--实时费用 acct.acct_credit h --信用度表 where a.state = '2HA' and a.product_id = '379' and a.serv_id = b.serv_id and b.state = '10A' and a.serv_id = b.serv_id and b.acct_id = c.acct_id and c.acct_id = d.acct_id and a.serv_id = e.serv_id and a.serv_id = f.serv_id and a.serv_id = g.serv_id这个是我原来写的,会产生笛卡尔积,实时话费也需要加起来 还有一点,除了6月份的那个表都有几千万的数据,我是一个小白,希望你们这些大神帮助我
windows server2012云服务器ftp配置问题
在云服务器上用serv-u配置了ftp,就在服务器上使用ftp完全没问题。 但是在本地使用就有问题了,如图 ![![图片说明](https://img-ask.csdn.net/upload/201612/02/1480680348_710590.png) ![图片说明](https://img-ask.csdn.net/upload/201612/02/1480680372_888149.png) 难道不能从公网的ip去访问内网的ftp服务吗
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
深深的码丨Java HashMap 透析
HashMap 相关概念 HashTab、HashMap、TreeMap 均以键值对像是存储或操作数据元素。HashTab继承自Dictionary,HashMap、TreeMap继承自AbstractMap,三者均实现Map接口 **HashTab:**同步哈希表,不支持null键或值,因为同步导致性能影响,很少被使用 **HashMap:**应用较多的非同步哈希表,支持null键或值,是键值对...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的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 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问