python3 使用setsockopt(socket.SOL_SOCKET,socket.SO_RCVTIMEO, 10) 设置接收超时时间无效

版本:python3.6

操作系统:windows10

需要将接收超时设置为永不超时,而其他超时时间使用默认值,如果不做任何设置,s.recv()会在一段时间后抛 time out 异常。

按如下方式:
使用setsockopt(socket.SOL_SOCKET,socket.SO_RCVTIMEO, 10)设置接收超时时间,超时时间被设成了3秒,而非10秒,s.recv()会在3秒后抛 time out 异常

s.settimeout(3)
s.setsockopt(socket.SOL_SOCKET,socket.SO_RCVTIMEO, 10) # 此句没有生效?

请教 s.setsockopt(socket.SOL_SOCKET,socket.SO_RCVTIMEO, 10) 如何使用?

1个回答

s.setsockopt(socket.SOL_SOCKET,socket.SO_RCVTIMEO, 10) 这里的10单位是ms,10秒是(10*1000)

xingao0114
放下也是缘 现在是问题是s.setsockopt(socket.SOL_SOCKET,socket.SO_RCVTIMEO, 10) 没有生效,生效的是前面那句s.settimeout(3)
7 个月之前 回复
xingao0114
放下也是缘 单位应该是秒,没错的
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
windows下用python加入指定源组播报错(10049 在其上下文中,请求的地址无效)
windows下用python加入指定源组播的时候,执行语句 s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_SOURCE_MEMBERSHIP, imr) 报错[Errno 10049],上下文错误! 运行环境为 Win10 64bit,python2.7 python3.6 32bit/64bit 网上也参考了相关的代码,测试了多个版本都是同样的错误,望大牛指点,谢谢! 测试代码如下: import socket from win_inet_pton import inet_pton if not hasattr(socket, 'IP_ADD_SOURCE_MEMBERSHIP'): setattr(socket, 'IP_ADD_SOURCE_MEMBERSHIP', 15) group = '239.192.70.40' port = 40040 bind = '0.0.0.0' source = '10.50.129.90' s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) imr = (socket.inet__pton(socket.AF__INET, group) + socket.inet_pton(socket.AF_INET, bind) + socket.inet_pton(socket.AF_INET, source)) s.setsockopt(socket.IPPROTO_IP, socket.SO_REUSEADDR, 1) s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_SOURCE_MEMBERSHIP, imr) s.bind((group, port)) while True: msg = s.recv(16384) print len(msg)
socket报错message too long,求助
sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) sock.setsockopt(socket.IPPROTO_IP, socket.SO_SNDBUF, 65535*1024) sock.sendto(packet_base, ('222.222.222.222', 0))
python 嗅探器报错[Errno 10013]
import socket import os host = "192.168.10.147" if os.name == 'nt': socket_protocol = socket.IPPROTO_IP else: socket_protocol = socket.IPPROTO_ICMP sniffer = socket.socket(socket.AF_INET,socket.SOCK_RAW,socket_protocol) sniffer.bind((host,9999)) sniffer.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL, 1)_ if os.name == "nt": sniffer.ioctl(socket.SIO_RCVALL,socket.RCVALL_ON) print sniffer.recvfrom(65565) if os.name == 'nt': sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF) 运行结果: Traceback (most recent call last): 0 File "C:/Users/Think/PycharmProjects/Test/sniffer.py", line 10, in <module> sniffer = socket.socket(socket.AF_INET,socket.SOCK_RAW,socket_protocol) File "C:\Python27\lib\socket.py", line 191, in __init__ _sock = _realsocket(family, type, proto) socket.error: [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions 不是端口的问题,在获取sniffer实例的时候就已经异常了。是操作权限的问题吗?
PYTHON网络编程遇到的问题
我在用PYTHON编写一个嗅探脚本时候出现的一个小问题,贴上原代码 import socket import os #监听的主机 host = "127.0.0.1" #创建原始套接字,然后绑定在公开接口上 if os.name == "nt": socket_protocol = socket.IPPROTO_IP else: scoket_protocol = socket.IPPROTO_ICMP sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol) sniffer.bind((host,0)) #设置在捕获的数据包中包含IP头 sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) #在windows上,我们设置IOCTL以启用混杂模式 if os.name == "nt": sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) #读取单个数据包 print sniffer.recvfrom(65565) #在windows平台上关闭混杂模式 if os.name == "nt": sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF) 运行时候提示: File "e:\python\sniffer.py", line 14, in sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol) File "F:\python\Lib\socket.py", line 191, in init _sock = _realsocket(family, type, proto) socket.error: [Errno 10013] 我百度到的说是端口被占用的问题,可是我找不到我的python服务所占用的端口号,特来求助,这个错误应该怎么解决,多谢
python原始套接字的问题
代码如下: ``` import socket addr='localhost' serversocket=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_IP) serversocket.bind((addr,0)) serversocket.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) serversocket.ioctl(socket.SIO_RCVALL,socket.RCVALL_OFF) print(serversocket.recvfrom(4096)) ``` ping自己,但是这里什么都不显示。 ![图片说明](https://img-ask.csdn.net/upload/201604/12/1460471711_936438.png) 由这图看到,ping自己就什么都没显示,求大神指点指点
linux的xterm开启的终端里使用原始套接字发送数据包出错,求助
xterm下原始套接字可以接收数据包,但是发送数据包时出错,怎么解决? 错误是【error 101】network is unreachable. 代码如下: proto = socket.getprotobyname('tcp') # only tcp sock = socket.socket( socket.AF_INET, socket.SOCK_RAW, proto ) packet_base = sock.recvfrom(1024)[0] s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) s.sendto(packet_base, ('123.123.123.123' , 12312))
求助:写了个简单的python通信窗口,为什么刚运行一会就会崩掉呢?
代码如下,不知道为什么会崩,在线等大神解答: # -*- coding:utf-8 -*- # file : server.py from PyQt4 import QtGui, QtCore import sys import socket import threading class Window(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) self.setWindowTitle('Server') self.edit = QtGui.QTextEdit() self.grid = QtGui.QGridLayout() self.button = QtGui.QPushButton('Start Listening') self.connect(self.button, QtCore.SIGNAL('clicked()'), self.Send) self.grid.addWidget(self.button, 0, 0) self.grid.addWidget(self.edit, 1, 0) self.setLayout(self.grid) def Send(self): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) sock.bind(('', 8033)) sock.listen(5) while True: try: server, addr = sock.accept() data = server.recv(1024) self.edit.append(data) server.send('I got ' + data) server.close() except: self.edit.append('Cut Down') break sock.close() app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_())
想用原始套接字发送syn请求,出现一个问题,是因为构建的包的格式有问题吗?
``` import random import socket import struct import array def create_socket(): s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL,1) return s def get_host_ip(): s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.connect(('8.8.8.8',80)) ip=s.getsockname()[0] s.close() return ip def doCksum(packet): words = array.array('h', packet) sum = 0 for word in words: sum += (word & 0xffff) sum = (sum >> 16) + (sum & 0xffff) sum += (sum >> 16) return (~sum) & 0xffff def create_ip_header(source_ip, dest_ip): # ip 头部选项 headerlen = 5 version = 4 tos = 0 tot_len = 20 + 20 id = random.randrange(18000,65535,1) frag_off = 0 ttl = 255 protocol = socket.IPPROTO_TCP check = 10 saddr = socket.inet_aton ( source_ip ) daddr = socket.inet_aton ( dest_ip ) hl_version = (version << 4) + headerlen ip_header = struct.pack('BBHHHBBH4s4s', hl_version, tos, tot_len, id, frag_off, ttl, protocol, check, saddr, daddr) return ip_header def create_tcp_syn_header(source_ip, dest_ip, dest_port): source = random.randrange(32000,62000,1) seq = 0 ack_seq = 0 doff = 5 fin = 0 syn = 1 rst = 0 psh = 0 ack = 0 urg = 0 window = socket.htons(8192) check = 0 urg_ptr = 0 offset_res = (doff << 4) + 0 tcp_flags = fin + (syn<<1) + (rst<<2) + (psh<<3) + (ack<<4) + (urg<<5) tcp_header = struct.pack('HHLLBBHHH', source, dest_port, seq, ack_seq, offset_res, tcp_flags, window, check, urg_ptr) source_address = socket.inet_aton( source_ip ) dest_address = socket.inet_aton( dest_ip ) placeholder = 0 protocol = socket.IPPROTO_TCP tcp_length = len(tcp_header) psh = struct.pack('4s4sBBH', source_address, dest_address, placeholder, protocol, tcp_length) psh = psh + tcp_header tcp_checksum = doCksum(psh) tcp_header = struct.pack('HHLLBBHHH', source, dest_port, seq, ack_seq, offset_res, tcp_flags, window, tcp_checksum, urg_ptr) return tcp_header source_ip = get_host_ip() dest_ip = '112.80.248.75' s = create_socket() ip_header = create_ip_header(source_ip,dest_ip) tcp_header = create_tcp_syn_header(source_ip,dest_ip,80) packet = ip_header + tcp_header s.sendto(packet,(dest_ip,80)) ``` **结果** ![图片说明](https://img-ask.csdn.net/upload/201912/17/1576595985_556527.png)
python中socket的端口重用。网上的解决方法不行!
```python server = socket(AF_INET, SOCK_STREAM) print 'server is ok!' server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) print 'setsockopt is ok!' server.bind(add) print 'bind is ok!' server.listen(10) print 'listen is ok!' ``` 还是会报错。 socket.error: [Errno 98] Address already in use
windows下C++网络编程,发送组播报文,sendto()函数发送失败,WSAGetLastError()返回错误码为5
1:windows下C++网络编程,发送组播报文,sendto()函数发送失败,WSAGetLastError()返回错误码为5 2:代码如下: // WinsockServer_1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <winsock2.h> #include <ws2tcpip.h> #include <stdio.h> const int MAX_BUF_LEN = 10; // Link with ws2_32.lib #pragma comment(lib, "Ws2_32.lib") int _tmain(int argc, _TCHAR* argv[]) { WORD wVersionRequested; WSADATA wsaData; int err; // 启动socket api wVersionRequested = MAKEWORD(2, 2); err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) { return -1; } if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { WSACleanup(); return -1; } // 创建socket SOCKET connect_socket; connect_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); if (INVALID_SOCKET == connect_socket) { err = WSAGetLastError(); printf("error! error code is %d/n", err); return -1; } SOCKADDR_IN sin; sin.sin_family = AF_INET; sin.sin_port = htons(3779); //sin.sin_addr.s_addr = INADDR_BROADCAST; sin.sin_addr.s_addr = inet_addr("224.0.0.22");//设置广播地址,window下用这种形式方可 bool bOpt = true; //设置该套接字为广播类型 if (setsockopt(connect_socket, SOL_SOCKET, SO_BROADCAST, (char*)&bOpt, sizeof(bOpt)) == SOCKET_ERROR) { printf("setsockopt error"); return -1; } if (setsockopt(connect_socket, SOL_SOCKET, SO_DEBUG, (char*)&bOpt, sizeof(bOpt)) == SOCKET_ERROR) { printf("setsockopt error"); return -1; } setsockopt(connect_socket, SOL_SOCKET, SO_BROADCAST, (char*)&bOpt, sizeof(bOpt)); int nAddrLen = sizeof(SOCKADDR); char buff[MAX_BUF_LEN] = ""; while (1) { sprintf_s(buff, "%s","ss"); // 发送数据 int nSendSize = sendto(connect_socket, buff, strlen(buff), 0, (SOCKADDR*)&sin, nAddrLen); if (SOCKET_ERROR == nSendSize) { err = WSAGetLastError(); printf("error!, error code is %d/n", err); return -1; } printf("Send: %s/n", buff); Sleep(500); } return 0; }
不同端口号加入到同一组播地址,关闭套接字时为什么会有影响?
有两个设备,使用udp组播的方式进行通讯,服务器端建立了两个udp连接,端口号不同,但是加入的是同一组播地址。当我关闭其中一个udp套接字时,为什么会影响另一个udp的连接? ``` 线程a: int rtp_server_socket; struct sockaddr_in server_addr, client_addr; socklen_t clielen_addr_length; clielen_addr_length = sizeof(client_addr); ReSocket: report_succeed = 1; //struct tcp_info info; bzero(&server_addr, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(A_PORT); server_addr.sin_addr.s_addr=htonl(INADDR_ANY); //create a stream socket rtp_server_socket = socket(AF_INET, SOCK_DGRAM, 0); //UDP printf("Create Socket OK \n"); //bind bind(rtp_server_socket, (struct sockaddr*)&server_addr, sizeof(server_addr)) printf("bind socket ok \n"); //set Multicast loop int loop = 1; //1: on , 0: off setsockopt(rtp_server_socket,IPPROTO_IP,IP_MULTICAST_LOOP,&loop,sizeof(loop)); struct ip_mreq mreq; mreq.imr_multiaddr.s_addr = inet_addr(multicast); mreq.imr_interface.s_addr = htonl(INADDR_ANY); //add multicast group setsockopt(rtp_server_socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)); int reuse = 1; setsockopt(rtp_server_socket, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)); while (1) { Recv: if (0 == report_succeed) { close(rtp_server_socket); goto ReSocket; } recvfrom(rtp_server_socket, buf, BUFFER_SIZE, 0, (struct sockaddr_in *) &client_addr, &clielen_addr_length); ``` ``` 线程b和上面的一样只是绑定的端口不一样 ``` 当我关闭线程b的套接字时,线程a的recvfrom()函数会堵塞一会,没有数据接收,请问这是为什么?
bind,address already in use
设置了setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on),任然解决不了问题! 代码如下: /* 接收方代码 */ #include <sys/types.h> #include <sys/socket.h> #include <errno.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> #include <string.h> struct sockaddr myname; struct sockaddr from_name; char buf[80]; main() { int sock; int fromlen, cnt; int on = 1; sock = socket(AF_UNIX, SOCK_DGRAM, 0); if (sock < 0) { printf("socket failure %d\n", errno); exit(1); } myname.sa_family = AF_UNIX; strcpy(myname.sa_data, "/tmp/aaa"); if (setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) != 0) { perror("Server setsockopt failed"); return 1; } if (bind(sock, &myname, strlen(myname.sa_data) + sizeof(myname.sa_family)) < 0) { perror("bind failure:"); exit(1); } /* 建立套接字 */ cnt = recvfrom(sock, buf, sizeof(buf), 0, &from_name, &fromlen); if (cnt < 0) { perror("recvfrom failure:"); exit(1); } /* 调用recvfrom函数从套接字接收数据 */ buf[cnt] = '\0'; /* 添加字符串结束标志 */ from_name.sa_data[fromlen] = '\0'; printf("'%s' received from %s\n", buf, from_name.sa_data); }
Python 服务器设置问题
问题: 1. 从我的电脑ping服务器能成功,但是客户端发送信息服务器接收不到, 同样的客户端代码拿到服务器上服务器端是能接收到的,求教怎么处理。 我已经把服务器端的防火墙放开了python.exe应用程序的接入。 2. 服务器端在UDP协议下,进入while循环,第一次能在recvfrom()处停住等待, 接收信息后,如果处理,如果进入“该用户已在列表中”的话就会继续循环,但如果 进入“新用户登入”的话在再次进入while循环的recvfrom循环的话就会卡死,求教!PS:该问题如果我把两个东西都放到win10家庭版下,设置客户端尝试连接的ip为:127.0.0.1的时候就不会出现这个问题。 环境: 1. 服务器端:阿里云服务器win10Server操作系统,python2.7.13Shell进行测试, 已绑定固定ip:116.62.149.45 2. 客户端:win10家庭版,python2.7.13,没做内网映射,内网ip:192.168.1.102 这是在服务器端测试的截图 ![图片说明](https://img-ask.csdn.net/upload/201705/30/1496084750_144895.jpg) ![图片说明](https://img-ask.csdn.net/upload/201705/30/1496084760_587243.jpg) 相关代码: ``` 客户端代码: user='Wxs' title='E-Quoter' ip='116.62.149.45' port=random.randint(5000,25000) Serverport=12319 ################################################################################ # 聊天客户端主程序 def chatroommain(): global flag if pingInternet(): print 'Internet connecting success...' try: tryping() if flag==0: print 'Connect with Server success...' try: roomUI() print 'Chatroom is success...' except: print '\nError:Chatroom is faild!' except: print '\nError:Ping Server is faild!' else: print '\nError:Please check your Internet is online!' def roomUI(): global flag if flag==0: app=wx.App() chatroom=Chatroom(None) chatroom.Show() app.MainLoop() del app ######################################################################################### # 服务器注册 def pingInternet():# 客户端联网测试 ip='www.baidu.com' cmd='ping %s'%ip backinfo=os.system(cmd) if backinfo: return False else: return True def stopThreads():# 关闭线程 try: socket.close() except: pass def tryping():# 尝试连接服务器 global Flag,flag Flag=0 flag=0 try: socket=connectServer() time=timemannager() try: socket.start() try: if Flag==0: time.start() time.join() if flag==1: print 'Error:Connect with Server is Faild!' try: stopThreads() print 'Threads closing success...' except: flag=1 Flag=1 print 'Error:Threads closing Faild!' except: Flag=1 flag=1 print 'Error:Timemannager start faild!' except: Flag=1 flag=1 print 'Error:Socket Threads start faild!' except: flag=1 Flag=1 pass if flag==1: return False class connectServer(threading.Thread):# 创建连接线程 def __init__(self): threading.Thread.__init__(self) self.threadName='connectServer' self.exitFlag=threading.Event() def run(self): global Flag,user,ip,port,flag,Serverport try: sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(('0.0.0.0',port)) print 'Socket is ready...' try: hostname = socket.gethostname() hostip=socket.gethostbyname(hostname) msg='pingServer#'+str(user) sock.sendto(msg,('172.16.173.52',Serverport)) print 'ping msg has been sent...' Flag=0 while Flag==0: flag=1 print 'Waiting for pingback...' data,addr=sock.recvfrom(1024) print 'here' if data=='0': Flag=1 flag=1 print 'Error:Has the same name online!' elif data=='1': Flag=1 flag=0 print 'Connect with Server is ready...' elif data==None: Flag=1 flag=1 print 'Connect with Server is faild!' time.sleep(0.2) except: flag=1 print 'Error:Sent ping msg is faild!' except: flag=1 print 'Error:Socket is faild to prepare!' def close(): sock.close() class timemannager(threading.Thread):# 超时判定线程 def __init__(self): threading.Thread.__init__(self) self.threadName='timemannager' self.exitFlag=threading.Event() def run(self): global Flag,flag time.sleep(3) Flag=1 def close(): stop.close() 服务器端代码: class sock(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.threadName='recive' self.exitFlag=threading.Event() def run(self): global port,Flag,file_output,clientipdic,flag,clientportdic try: sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(('0.0.0.0',port)) print '\nReciving thread is ready...' try: while Flag==0: print '\nWaiting for new message...' data,addr=sock.recvfrom(3096) msg=data clientip=addr[0] clientport=addr[1] try: check=msg[:msg.index('#')] name=msg[msg.index('#')+1:] if check=='pingServer': print 'New climent connecting! Analyzing...' if name in clientipdic: msg='0' sock.sendto(msg,addr) else: print 'new client logon!' for each in clientipdic: head=name back='已登录!' backmsg=name+back address=str(clientipdic[each]) sock.sendto(msg,(address,int(clientportdic[each]))) msg='1' sock.sendto(msg,(clientip,clientport)) clientipdic[name]=clientip clientportdic[name]=str(clientport) except: newmsg=data for each in clientipdic: address=str(clientipdic[each]) sock.sendto(newmsg,(address,int(clientportdic[each]))) time.sleep(0.1) except: flag=1 Flag=1 print 'Error:Recive threading sets faild!' file_output.write('Error:Recive threading sets faild!') except: flag=1 Flag=1 print 'Error:socket setting is Faild!' file_output.write('Error:socket setting is Faild!') def close(): socket.close() ```
socket编程——内网ping公网失败
我电脑连的是铁通的公网,在做一个C/S socket编程。在我一台电脑上客户端和服务器之间可以正常发送数据,但是客户端放到别的可以上网的电脑上时就连不上了。我用ping命令检测过网络情况,基本上都ping不通。只有一次一个同学在公司用他的电脑ping通了,不过是单向的,我还是Ping不通他的,服务器和客户端之间还是发送不了数据。有哪位高手知道是什么原因?谢谢! 服务器端部分代码如下: //设定地址 serv.sin_addr.s_addr=htonl(INADDR_ANY); serv.sin_family=AF_INET; serv.sin_port=5000;//htons(5000); addlen=sizeof(serv); m_button.EnableWindow(FALSE);//退出为假 //创建socket sock=socket(AF_INET,SOCK_STREAM,0); BOOL val=true; if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char *)val,sizeof(val))!=0); { printf("error!setsocket failed!/n"); // return -1; } //将socket绑定到服务器上 if (bind(sock,(sockaddr*)&serv,addlen)) { m_edit.SetWindowText("绑定错误"); }else { //m_list.InsertItem(count++,inet_ntoa(serv.sin_addr)); m_edit.SetWindowText("服务器创建成功"); //开始侦听 listen(sock,5); 客户端: cli.sin_addr.s_addr=inet_addr(ipaddress); cli.sin_family=AF_INET; cli.sin_port=5000;//htons(5000); //创建socket clisock=socket(AF_INET,SOCK_STREAM,0); val=true; if(setsockopt(clisock,SOL_SOCKET,SO_REUSEADDR,(char *)val,sizeof(val))!=0); { printf("error!setsocket failed!/n"); // return -1; } if(connect(dlg->clisock,(sockaddr*)&(dlg->cli),sizeof(dlg->cli))==INVALID_SOCKET) { printf("connet()failed:%d\n",WSAGetLastError()); dlg->m_edit.SetWindowText("等待....."); } else { dlg->m_list.InsertItem(dlg->count++,"连接成功"); dlg->m_button1.EnableWindow(TRUE); dlg->SetForegroundWindow(); } //接收数据 while(s!=SOCKET_ERROR && dlg->ee!=0) { //调用recv函数接收数据 s=recv(dlg->clisock,buff,100,0); dlg->SetForegroundWindow();//做什么? //如果没有接收错误,同时没有断开连接,则显示接收到的数据 if (s!=SOCKET_ERROR && dlg->ee!=0) dlg->m_list.InsertItem(dlg->count++,buff); dlg->m_list.Scroll(size); }
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); } }
关于使用对应的广播地址,UDP广播失败
我有个项目使用UDP广播的功能。广播地址使用“255.255.255.255”可以广播,使用“10.73.255.255”这个广播地址其他的设备收不到广播内容,但是抓包显示确实已经发送的目的IP是“10.73.255.255”这个广播地址了。 我的IP是10.73.2.136和10.73.2.146,子网掩码是255.255.240.0。对应的广播地址是10.73.255.255。 下面是我的代码部分: UDP服务器发送部分 ``` #include<iostream> #include<stdio.h> #include<sys/socket.h> #include<unistd.h> #include<sys/types.h> #include<netdb.h> #include<netinet/in.h> #include<arpa/inet.h> #include<string.h> #define MCAST_ADDR "10.73.255.255" using namespace std; int main() { setvbuf(stdout,NULL,_IONBF,0); fflush(stdout); int sock=-1; if((sock=socket(AF_INET,SOCK_DGRAM,0))==-1) { cout<<"sock error"<<endl; return -1; } const int opt=-1; int ret=0; ret=setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char*)&opt,sizeof(opt));//设置套接字类型 if(ret==-1) { cout<<"set socket error...\n"<<endl; return -1; } struct sockaddr_in addrto; bzero(&addrto,sizeof(struct sockaddr_in)); addrto.sin_family=AF_INET; //addrto.sin_addr.s_addr=htonl(INADDR_BROADCAST);//套接字地址为广播地址 addrto.sin_addr.s_addr=inet_addr(MCAST_ADDR); addrto.sin_port=htons(6000);//套接字广播端口号为6000 int nlen=sizeof(addrto); while(1) { sleep(1); char msg[]={"the message broadcast"}; ret=sendto(sock,msg,strlen(msg),0,(sockaddr*)&addrto,nlen);//向广播地址发布消息 if(ret<0) { cout<<"send error...\n"<<endl; return -1; } else { printf("ok\n"); } } return 0; } 客户端代码: #include<iostream> #include<stdio.h> #include<sys/socket.h> #include<unistd.h> #include<sys/types.h> #include<netdb.h> #include<netinet/in.h> #include<arpa/inet.h> #include<string.h> using namespace std; int main() { setvbuf(stdout,NULL,_IONBF,0); fflush(stdout); int sock=-1; if((sock=socket(AF_INET,SOCK_DGRAM,0))==-1) { cout<<"socket error..."<<endl; return -1; } const int opt=-1; int nb=0; nb=setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char*)&opt,sizeof(opt)); if(nb==-1) { cout<<"set socket errror..."<<endl; return -1; } struct sockaddr_in addrto; bzero(&addrto,sizeof(struct sockaddr_in)); addrto.sin_family=AF_INET; addrto.sin_addr.s_addr=htonl(INADDR_ANY); addrto.sin_port=htons(6000); socklen_t len=sizeof(addrto); if(bind(sock,(struct sockaddr*)&(addrto),len)==-1) { cout<<"bind error..."<<endl; return -1; } char msg[100]={0}; while(1) { int ret=recvfrom(sock,msg,100,0,(struct sockaddr*)&addrto,&len); if(ret<=0) { cout<<"read error..."<<endl; } else { char p[64]; inet_ntop(AF_INET, &addrto.sin_addr.s_addr, p, 16); cout<<"IP:"<<p<<" msg:" <<msg<<endl; } sleep(1); } return 0; } ```
双网段设备的广播如何选择广播网段
计算机A具有两个网卡, 配置为不同两个网段, 比如IP分别是192.168.0.100, 和192.168.1.100 我的需求是这样子的, 需要在0段广播, 这样可以被其他设备发现. 测试中发现设备A只能在两个网段的其中一个子网里广播, 并且不知道在哪配置 测试过程是这样的, 计算机B配置为0段, 与A直连 计算机C配置为1段, 与A直连 启用两个网卡的时候, 计算机C是收不到A的广播信息的, 当禁用了1段所在的网卡后, 计算机C就可以收到广播了, 之间广播程序不重启. 广播部分主要代码是这样的 SOCKADDR_IN SockAddr; // Init address memset (&SockAddr, 0, sizeof(SockAddr)); SockAddr.sin_family = AF_INET; SockAddr.sin_port = htons(theTCS->CFG.TCSLocalServer.Port); SockAddr.sin_addr.S_un.S_addr = INADDR_BROADCAST; // Create UDP sock SOCKET BroadcastSock = socket (AF_INET, SOCK_DGRAM, 0); // Enable broadcast option. BOOL fBroadcast = TRUE; setsockopt (BroadcastSock, SOL_SOCKET, SO_BROADCAST, (char *)&fBroadcast, sizeof(fBroadcast)); byte* buf = new byte[bufSize]; //fill buf ... // Broadcast identifier while(!m_quit) { if (sendto (BroadcastSock, (char*)buf, bufSize, 0, (sockaddr*)&SockAddr, sizeof(SockAddr)) == SOCKET_ERROR) { break; } Sleep(5000); } closesocket (BroadcastSock); delete[] buf;
Linux平台C语言关于UDP广播的问题。
首先,我写了一个非常简单的UDP服务端,我看了看,是IP地址写的问题,(下面详细代码), 当我有inet_addr("192.168.152.128")的时候,是不能成功收到信息的,但我用 htonl(INADDR_ANY)的时候,却是可以收到信息,为什么?(我的客户端是用广播地址:192.168.152.255) ``` #include"myhead.h" char rbuf[50]; char wbuf[50]; int main() { int udp,size,len,opt=1; struct sockaddr_in laddr; struct sockaddr_in raddr; laddr.sin_family = AF_INET; laddr.sin_port = htons(8888); laddr.sin_addr.s_addr = inet_addr("192.168.152.128");//疑惑在这里 size = sizeof(struct sockaddr_in); udp = socket(AF_INET,SOCK_DGRAM,0); setsockopt(udp,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof opt); bind(udp,(struct sockaddr*)&laddr,size); len=sizeof(struct sockaddr); while(1) { recvfrom(udp,rbuf,50,0,(struct sockaddr*)&raddr,&len); printf("%s\n",rbuf); bzero(rbuf,50); } } ```
bind后10047错误,如何解决?
int main(int argc, char** argv) { WSADATA wsaData; WSAStartup(MAKEWORD(2,1),&wsaData); if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=1) { printf("WSAStartup - error\n"); WSACleanup(); return 0; } SOCKET s; SOCKADDR_IN addr; s=socket(AF_INET,SOCK_RAW,IPPROTO_IP); if(s==SOCKET_ERROR) { printf("socket - error\n"); WSACleanup(); return 0; } addr.sin_family = AF_INET; addr.sin_port = ::htons(6000); char str[56]; memset(str,0,sizeof(str)+1); gethostname(str,sizeof(str)); hostent *pHost; pHost = gethostbyname(str); int nErr=GetLastError(); char *szAddr[10]; //memcpy(szAddr,pHost->h_addr_list,pHost->h_length); //szAddr = inet_ntoa (*(struct in_addr *)pHost->h_addr_list); //addr.sin_addr.S_un.S_addr=inet_addr(szAddr); int i=0; while(pHost->h_addr_list[i]!=NULL) { szAddr[i]=(char *)malloc(16); sprintf(szAddr[i],"%s",inet_ntoa(*(struct in_addr *)pHost->h_addr_list[i])); printf("Bind to %s\n",szAddr[i]); i++; }; //addr.sin_addr.S_un.S_addr=inet_addr("192.157.1.201"); //memcpy(&addr.sin_addr.S_un.S_addr,pHost->h_addr_list,pHost->h_length); addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //BOOL flag; //setsockopt(s,IPPROTO_IP,2,(char*)&flag,sizeof(flag)); if(0!=bind(s,(SOCKADDR*)(&addr),sizeof(addr))) { nErr=WSAGetLastError(); WSACleanup(); printf("bind - error\n"); return 0; } WSACleanup(); return 0; ``` ``` 网上的方法试了很多次,err都为10047
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 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)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
相关热词 基于c#波形控件 c# 十进制转十六进制 对文件aes加密vc# c#读取栈中所有的值 c# rsa256加密 好 学c# 还是c++ c# 和java的差距 c# curl网络框架 c# https证书请求 c# 中崎
立即提问