ping 远程主机IPv4可通,ping IPv6 不通,提示:General Failure.

RT
(另外版主或是CSDN管理人员看到留意一下,为何我的markdown语法在这个提问下没有效果,排版可读性大大降低)

  • ping 的目标主机都是同一台,ipv4通,ipv6不通

  • 我的远程主机的腾讯云上的主机 Windows Server R2 2012(我也不知道腾讯云的主机支持ipv6不,不知道哪可以查看到,但腾讯云主机上ipconfig是可以看到有ipv6的地址,应该是支持的)

  • 同网段的可以ping同ipv6的(我ping我同事的电脑ipv6地址,没有问题)

#我本机ping远程主机ipv4,ping得通
ping ipv4可通

#我本机ping远程主机ipv6,ping不通
ping ipv6不通

#我本机的ipconfig /all信息
本机IPV6


后来我在腾讯云上问了,发现有:腾讯云智能客服
目前腾讯云暂不支持IPV6的
目前腾讯云暂不支持IPV6的

好了,就这样先,结贴

3个回答

腾讯云没用过,不清楚支不支持ipv6。
如果网络和服务器都支持ipv6,可以再检查一下配置或者看看服务器上ipv6有没有被防火墙屏蔽,可以用Xshell看看。

qq_42062268
qq_42062268 回复linjf520: ipv6有独立的防火墙配置,你可以搜索一下怎么打开。
一年多之前 回复
linjf520
linjf520 目前腾讯云暂不支持IPV6的
一年多之前 回复
linjf520
linjf520 Xshell我不太熟悉
一年多之前 回复
linjf520
linjf520 我的腾讯云主机是:windows server r2 2012的,要怎么查看,ipv6的还有独立的防火墙配置吗?
一年多之前 回复

你本机IPv6配了吗?配同一个IPv6网段试试

linjf520
linjf520 同网段的可以ping同ipv6的(我ping我同事的电脑ipv6地址,没有问题)
一年多之前 回复

查看防火墙状态:service iptables status 和 service ip6tables status 关闭防火墙:service iptables stop 和 sevice ip6tables stop

linjf520
linjf520 回复weixin_40539507: 我ping IPv4的外网地址(网段不同的)也可以啊,如果ping IPv6要相同网段才可以的话,那这个ping.exe在IPv6就没啥作用了,估计写windows的ping.exe的大神不会没考虑到这些问题的,而且一般都会随系统升级而升级,毕竟IPv6是以后首选使用的IP
一年多之前 回复
weixin_40539507
凌晨一点半1951 网段要相同才行吧
一年多之前 回复
linjf520
linjf520 我的腾讯云主机是:windows server r2 2012版本的,远程主机的防火墙都关了,还是不行,腾讯云主要是控制台可配置安全组(你可以理解是一个统一提供安全过滤服务的机器,ICMP我是开了的,ping用的是icmp,所以ping ipv4可通的)
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用的apache,ping localhost为[::1],怎样改成ipv4?
用的apache,ping localhost为[::1],怎样改成ipv4?apache为什么默认ipv6了?不是默认ipv4的么?换成Nginx就自动变回ipv4了
可以ping通ipv6.google.com但是浏览器无法访问
系统:ubuntu 14(此为mware虚拟机,宿主机所在网络为联通) 软件:miredo/gw6c 参考:http://jason-lam.lofter.com/post/17e8f0_64a9ab 问题:ping6 ipv6.google.com是成功的,但是浏览器却访问不了
折腾几晚上找不到结果,IPV6获取正常,外网就是连不进来
实在搞不懂了 IPV6电脑能出去,就是不能进来 通过光猫改ROUTE模式,IPV4/IPV6双栈 拨号获取 光猫IPV6正常,电脑(以下简称本机)IPV6正常,本机能远程3389外网主机,能PING通外网主机(光猫下接本机,中间没有设备) ,光猫上诊断PING本机可以PING通 外网(手机,另一处IPV6电脑 )PING 不通本机,远程主机3389连不进来,PING 不进来。3389,远程等各项服务都已开启,IPV4内网远程本机正常 (远程配置已无问题)。已经开启IPV6地址ICMPv6回响,再次测试,关闭本机防火墙,问题依旧,tracert 本机IPV6 卡在光猫的地址处就没有了 光猫获取情况 ![图片说明](https://img-ask.csdn.net/upload/201907/15/1563176196_887082.png) 光猫下接电脑(没有通过路由器)PING 网关 能通: ![图片说明](https://img-ask.csdn.net/upload/201907/15/1563176248_532367.png) 各项服务检查正常: ![图片说明](https://img-ask.csdn.net/upload/201907/15/1563176266_76310.png) ![图片说明](https://img-ask.csdn.net/upload/201907/15/1563176285_659540.png) 光猫PING 本机正常: ![图片说明](https://img-ask.csdn.net/upload/201907/15/1563176668_132528.png) 本机tracert ipv6 dns 正常: ![图片说明](https://img-ask.csdn.net/upload/201907/15/1563176504_287735.png)
如何手动为unbuntu配置ipv6的地址
如题 如何手动为unbuntu配置ipv6的地址 网上只有个开启的功能 配置静态ip地址没找到 emm,后面找到了 先看系统是否有ipv6,再像ipv4一样配ipv6就行 ![图片说明](https://img-ask.csdn.net/upload/202001/11/1578711336_679089.png)
ipv4 ipv6 如何进行快速设置
ipv4 ipv6 如何进行快速设定设置,恢复网络联通问题 正常上网
怎样实现两个Ubuntu之间的IPv6通信
我已经在两个Ubuntu上分别安装了miredo,Ubuntu可以ping通ipv6的网址,但是当我ping另一个Ubuntu的v6地址时,总是显示Address unreachable(两个IPv6地址都是2001开头,两个Ubuntu通过同一个路由器上网,且iPv4情况下是可以ping通的)。 请问如何使得这两个Ubuntu在IPv6下的通信?该如何配置? 谢谢!不胜感激!
ES聚合ipv6自动格式化问题
### 如题: ``` mapping : "DEST_ADDRESS": { "type": "ip", "fields": { "search": { "type": "text" } } } 原始字段值: "DEST_ADDRESS": "2001:0000:0000:0000:0000:0000:0000:000B", terms聚合结果: "key": "2001::b", ``` 为什么会出现这种情况? 如何禁止自动格式化?(不考虑改变mapping)
linux下ipv6访问不了怎样解决
单位打印机是ipv6的地址,ping 打印机v6地址不通,ping v6地址%eth1是通的,但是打印不了。看网上帖子,ping v6地址都要加%网络接口。但是网络访问都加这个吗?能否设置eth1是缺省路由呢?可是设置了之后好像还是不行。我用的是route -6 add v6地址端 dev eth1 加上后还是ping要加%eth1 哪位指点一下?
Centos7有线连接已连接却不能上网,且ping不通外网,ifconfig和ip addr都没问题,虚拟机用的桥接。
ping主机,外网,网关均显示Destination Host Unreachable。Centos7是虚拟机上运行的。这是虚拟机Centos7的网络配置: HWADDR=此处省略。。。。。。 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO="static" PEFROUTES=yes PEERDNS=no IPV4_FAILURE_FATAL=yes IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=此处省略。。。。。。 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.99.131 GATEWAY=192.168.99.1 DNS=192.168.99.1 NETMASK=255.255.255.0
Linux一个关于BBR的问题,执行net.ipv4.tcp_congestion_control存在bbr,但lsmod没有tcp_bbr
今天linux虚拟机内核更新为4.9,想尝试一下BBR的性能 通过https://www.kernel.org/ 下载内核安装后 输入命令 ``` sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control ``` 能成功的显示 bbr 也进行了相关的设置 ``` echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf ``` 但lsmod命令不存在tcp_bbr ``` lsmod | grep bbr ``` 通过modprobe设置 tcp_bbr没有报错,说明存在该模块的,但设置后lsmod还是没有tcp_bbr ``` modprobe tcp_bbr ```
ubnutu socket实现不同主机通信 客户端链接服务端拒绝链接
客户端 ``` #include<stdlib.h> #include<sys/types.h> #include<stdio.h> #include<sys/socket.h> #include<string.h> #include<arpa/inet.h> #include<unistd.h> #include<errno.h> #include<pthread.h> void sent(int *qian){ int q=*qian; char buff[1024]; int len; while(1){ bzero(buff,1025); fgets(buff,1024,stdin); // len=send(q,buff,30,0); if(len<0){ perror("send "); break; } if(!strncasecmp(buff,"quit",4)){ printf("I will quit!\n"); break; } } close(q); pthread_exit(NULL); } int main(){ int lian,len; char buff[30]; struct sockaddr_in dest; if((lian=socket(AF_INET,SOCK_STREAM,0))<0){ printf("socket error!\n"); return -1; } printf("socket created\n"); bzero(&dest,sizeof(dest)); dest.sin_family=AF_INET; dest.sin_port=htons(8088); inet_aton(("127.0.0.1"),(struct in_addr*)&dest.sin_addr.s_addr); if(connect(lian,(struct sockaddr *)&dest,sizeof(dest))==-1){ perror("connect "); exit(1); } printf("sercer connect\n"); pthread_t sended; pthread_create(&sended,NULL,(void*)sent,&lian); while(1){ bzero(buff,30); len=recv(lian,buff,30,0); if(len<=0){ perror("recv "); break; } else if(len>0)printf("%s\n",buff); else { printf("the other one close,quit\n"); break; } } pthread_join(sended,NULL); //等待sended线程结束之后,主线程才能结束 close(lian); return 0; } ``` 服务端 ``` #include <stdlib.h> #include <sys/types.h> #include <stdio.h> #include <sys/socket.h> #include <string.h> #include <signal.h> #include <arpa/inet.h> #include <unistd.h> #include <pthread.h> #include <fcntl.h> #include <time.h> #include<errno.h> int num=0; int new_fd[5]; struct sockaddr_in myaddr,itaddr; void sended(int *qian){ char buf[30]; int len; int q=*qian; char mass[60]; len=sizeof(struct sockaddr); while(1){ if((recv(q,buf,30,0))<=0){ //接收来自客户端的消息 break; } if(strncasecmp(buf,"quit",4)==0){ printf("%d已退出聊天室\n",q); close(q); break; } printf("%d说:%s\n",q,buf); sprintf(mass,"%d说:%s",q,buf); int j=0; for(j=0;j<num;j++){ if(q-4!=j) send(new_fd[j],mass,60,0); } //将某个客户端的信息发送给其它客户端 bzero(buf,30); } printf("接受信息结束!\n"); close(q); pthread_exit(NULL); } void revied(int *qian){ int fd; int q=*qian; while(1){ char buf[1024]; char rizhi[100]; int fang; int len; len=sizeof(struct sockaddr); bzero(buf,1025); time_t t; t=time((time_t *) 0); //得到系统时间 if((fang=accept(q,(struct sockaddr *)&itaddr,&len))<0){ //接收来自客户端的连接申请 printf("accept error!\n"); exit(1); } else printf("server:gor connection from %s ,port %d,socket %d ,time:%s\n",inet_ntoa(itaddr.sin_addr),ntohs(itaddr.sin_port),fang, ctime(&t)); //打印出客户端连接信息 //将信息写入文件 sprintf(rizhi,"the %d user connection from %s ,port %d,socket %d ,time:%s\n",num+1,inet_ntoa(itaddr.sin_addr),ntohs(itaddr.sin_port),fang, ctime(&t)); fd =open("rizhi.txt",O_RDWR|O_CREAT, S_IRWXU); lseek(fd,0,SEEK_END); write(fd,rizhi,strlen(rizhi)); close(fd); new_fd[num]=fang; num++; printf("连接了%d用户\n",num); pthread_t sent; pthread_create(&sent,NULL,(void*)sended,&fang); //线程sended函数 sleep(0.2); } close(q); pthread_exit("线程安全退出!\n"); } int main(){ int i=1; int lian; int pid,len; char buf[1024]; pthread_t revi;//声明线程ID printf("Socket...\n"); lian=socket(AF_INET, SOCK_STREAM, 0); /* 创建套接字完成连接, 第一个参数为地址族,也就是ip地址类型,AF_INET表示地址类型为ipv4 第二个参数为数据传输方式/套接字类型,SOCK_STREAM表示流格式套接字/面向连接的套接字 第三个参数为传输协议,设为0,则系统会自动推演该使用什么传输协议 socket()函数返回文件描述符,唯一标识套接字 */ if(lian<0){ printf("%s\n","socket error!"); exit(1); } printf("Bind...\n"); myaddr.sin_family=AF_INET; myaddr.sin_port=htons(8088); //初始化sockaddr_in结构体参数 //sin_port存储端口号 //htons()将本地字节顺序转换为网络字节顺序 inet_aton(("127.0.0.1"),(struct in_addr*)&myaddr.sin_addr.s_addr); //inet_aton,将一个字符串ip转换为网络序列ip地址 if(bind(lian,(struct sockaddr*)&myaddr,sizeof(myaddr))<0) //bind(),创建本地捆绑 { printf("Bind failed.\n"); exit(1); } printf("listen...\n"); listen(lian,5); //linten()创建套接口并监听申请的连接 pthread_create(&revi,NULL,(void*)revied,&lian); /*建立线程 第一个参数为指向线程标识符的指针 第二和参数设置线程属性 第三个参数为线程运行函数的起始地址 第四个参数为该运行函数的参数 */ while(1){ int j=0; char massage[30]; char ass[60]; scanf("%s",&massage); sprintf(ass,"服务器说:%s",massage); if(strncasecmp("quit",massage,4)==0){ printf("即将退出!\n"); break; } if(num<=0)printf("没有客户端连接!\n"); else{ for(j=0;j<num;j++){ int ss=send(new_fd[j],ass,60,0); } //服务器的自己写的信息发送给客户端 } sleep(0.5); } pthread_join(revi,NULL); //等待revi线程结束之后,主线程才能结束 close(lian); return 0; } ```
求大神,Android通过代码,修改本机ipv6地址和DNS?
现在在做个客户端,目前状况就是: 1、连接着可以上ipv6的路由。 2、程序可查看本机ipv4和ipv6地址,可修改ipv4地址 3、需要的是修改ipv6地址。 网上查了很多,2中的可达到,但其实我是需要修改ipv6地址。 修改ipv4地址时: WifiConfiguration wifiConf = null; WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo connectionInfo = wifiManager.getConnectionInfo(); List<WifiConfiguration> configuredNetworks = wifiManager.getConfiguredNetworks(); configuredNetworks对象中的linkproperties,有ipv4、网关、DNS,但就没有ipv6,请问我需要修改ipv6应该怎么弄?前提尽量就通过程序,而不是网上那些安各种东西的方法。 本人小白,望大神们可以说的细致一点,谢谢!
小白tomcat运行项目时404报错,求大神解答,运行过程如下
``` E:\apache-tomcat-8.5.45\bin\catalina.bat run [2019-12-30 11:55:42,272] Artifact library:war exploded: Waiting for server connection to start artifact deployment... Using CATALINA_BASE: "C:\Users\lenovo\.IntelliJIdea2019.2\system\tomcat\Tomcat_8_5_45_library" Using CATALINA_HOME: "E:\apache-tomcat-8.5.45" Using CATALINA_TMPDIR: "E:\apache-tomcat-8.5.45\temp" Using JRE_HOME: "C:\Program Files\Java\jdk-12.0.2" Using CLASSPATH: "E:\apache-tomcat-8.5.45\bin\bootstrap.jar;E:\apache-tomcat-8.5.45\bin\tomcat-juli.jar" NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 30-Dec-2019 23:55:44.413 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.45 30-Dec-2019 23:55:44.417 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Aug 14 2019 22:21:25 UTC 30-Dec-2019 23:55:44.417 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.45.0 30-Dec-2019 23:55:44.417 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10 30-Dec-2019 23:55:44.417 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.0 30-Dec-2019 23:55:44.417 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 30-Dec-2019 23:55:44.418 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk-12.0.2 30-Dec-2019 23:55:44.418 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 12.0.2+10 30-Dec-2019 23:55:44.418 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation 30-Dec-2019 23:55:44.418 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\lenovo\.IntelliJIdea2019.2\system\tomcat\Tomcat_8_5_45_library 30-Dec-2019 23:55:44.418 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: E:\apache-tomcat-8.5.45 30-Dec-2019 23:55:44.419 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED 30-Dec-2019 23:55:44.420 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED 30-Dec-2019 23:55:44.421 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 30-Dec-2019 23:55:44.422 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\lenovo\.IntelliJIdea2019.2\system\tomcat\Tomcat_8_5_45_library\conf\logging.properties 30-Dec-2019 23:55:44.422 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 30-Dec-2019 23:55:44.422 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote= 30-Dec-2019 23:55:44.423 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099 30-Dec-2019 23:55:44.423 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false 30-Dec-2019 23:55:44.423 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\lenovo\.IntelliJIdea2019.2\system\tomcat\Tomcat_8_5_45_library\jmxremote.password 30-Dec-2019 23:55:44.423 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\lenovo\.IntelliJIdea2019.2\system\tomcat\Tomcat_8_5_45_library\jmxremote.access 30-Dec-2019 23:55:44.424 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1 30-Dec-2019 23:55:44.424 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 30-Dec-2019 23:55:44.424 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 30-Dec-2019 23:55:44.424 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 30-Dec-2019 23:55:44.424 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\lenovo\.IntelliJIdea2019.2\system\tomcat\Tomcat_8_5_45_library 30-Dec-2019 23:55:44.424 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=E:\apache-tomcat-8.5.45 30-Dec-2019 23:55:44.425 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=E:\apache-tomcat-8.5.45\temp 30-Dec-2019 23:55:44.425 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.7.0]. 30-Dec-2019 23:55:44.425 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 30-Dec-2019 23:55:44.425 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 30-Dec-2019 23:55:44.434 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1c 28 May 2019] 30-Dec-2019 23:55:44.513 淇℃伅 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 30-Dec-2019 23:55:44.566 淇℃伅 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 30-Dec-2019 23:55:44.598 淇℃伅 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] 30-Dec-2019 23:55:44.616 淇℃伅 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 30-Dec-2019 23:55:44.617 淇℃伅 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 668 ms 30-Dec-2019 23:55:44.724 淇℃伅 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 30-Dec-2019 23:55:44.724 淇℃伅 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.45 30-Dec-2019 23:55:44.744 淇℃伅 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 30-Dec-2019 23:55:44.773 淇℃伅 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 30-Dec-2019 23:55:44.800 淇℃伅 [main] org.apache.catalina.startup.Catalina.start Server startup in 182 ms Connected to server [2019-12-30 11:55:45,097] Artifact library:war exploded: Artifact is being deployed, please wait... 30-Dec-2019 23:55:45.511 璀﹀憡 [RMI TCP Connection(5)-127.0.0.1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default version will be used. 30-Dec-2019 23:55:47.851 淇℃伅 [RMI TCP Connection(5)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 30-Dec-2019 23:55:48.702 璀﹀憡 [RMI TCP Connection(5)-127.0.0.1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [751] milliseconds. [2019-12-30 11:55:48,747] Artifact library:war exploded: Artifact is deployed successfully [2019-12-30 11:55:48,747] Artifact library:war exploded: Deploy took 3,650 milliseconds 30-Dec-2019 23:55:54.748 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [E:\apache-tomcat-8.5.45\webapps\manager] 30-Dec-2019 23:55:54.837 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [E:\apache-tomcat-8.5.45\webapps\manager] has finished in [88] ms ```
IPV6的相关知识,怎么看出IPV6对应的IP地址
求一个详细介绍IPV6的网站。 比如68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF对应的IP是多少? 还有,怎么通过IPV6的前50位,了解他的IP一部分
elasticsearch连接出错
1、错误截图 ``` 2019-12-06 10:39:43.846 ERROR 2824 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{OAnbfg_bSjCat5ebeRNMTg}{127.0.0.1}{127.0.0.1:9300}]]] with root cause org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{OAnbfg_bSjCat5ebeRNMTg}{127.0.0.1}{127.0.0.1:9300}] at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:347) ~[elasticsearch-5.6.1.jar:5.6.1] at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:245) ~[elasticsearch-5.6.1.jar:5.6.1] at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:59) ~[elasticsearch-5.6.1.jar:5.6.1] at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:363) ~[elasticsearch-5.6.1.jar:5.6.1] at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:408) ~[elasticsearch-5.6.1.jar:5.6.1] at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80) ~[elasticsearch-5.6.1.jar:5.6.1] at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:54) ~[elasticsearch-5.6.1.jar:5.6.1] at org.elasticsearch.action.ActionRequestBuilder.get(ActionRequestBuilder.java:62) ~[elasticsearch-5.6.1.jar:5.6.1] at com.imooc.service.search.SearchServiceImpl.aggregateDistrictHouse(SearchServiceImpl.java:460) ~[classes/:na] at com.imooc.web.controller.house.HouseController.show(HouseController.java:207) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_131] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_131] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_131] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_131] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) ~[spring-web-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.20.jar:8.5.20] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.11.RELEASE.jar:4.3.11.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.20.jar:8.5.20] ``` ![图片说明](https://img-ask.csdn.net/upload/201912/06/1575600402_940718.jpg) 2、elasticsearch配置信息 ``` cluster.name: elasticsearch # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # node.name: master node.master: true node.data: true # # Add custom attributes to the node: # #node.attr.rack: r1 # # ----------------------------------- Paths ------------------------------------ # # Path to directory where to store the data (separate multiple locations by comma): # #path.data: /path/to/data # # Path to log files: # #path.logs: /path/to/logs # # ----------------------------------- Memory ----------------------------------- # # Lock the memory on startup: # #bootstrap.memory_lock: true # # Make sure that the heap size is set to about half the memory available # on the system and that the owner of the process is allowed to use this # limit. # # Elasticsearch performs poorly when the system is swapping the memory. # # ---------------------------------- Network ----------------------------------- # # Set the bind address to a specific IP (IPv4 or IPv6): # network.host: 127.0.0.1 # # Set a custom port for HTTP: # #http.port: 9200 # # For more information, consult the network module documentation. # # --------------------------------- Discovery ---------------------------------- # # Pass an initial list of hosts to perform discovery when new node is started: # The default list of hosts is ["127.0.0.1", "[::1]"] # #discovery.zen.ping.unicast.hosts: ["host1", "host2"] # # Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1): # #discovery.zen.minimum_master_nodes: 3 # # For more information, consult the zen discovery module documentation. # # ---------------------------------- Gateway ----------------------------------- # # Block initial recovery after a full cluster restart until N nodes are started: # #gateway.recover_after_nodes: 3 # # For more information, consult the gateway module documentation. # # ---------------------------------- Various ----------------------------------- # # Require explicit names when deleting indices: # #action.destructive_requires_name: true #bootstrap.system_call_filter: false http.cors.enabled: true http.cors.allow-origin: "*" ``` 3、spring项目配置信息 ``` package com.imooc.config; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.transport.client.PreBuiltTransportClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.net.InetAddress; import java.net.UnknownHostException; @Configuration public class ElasticSearchConfig { @Value("${elasticsearch.host}") private String esHost; @Value("${elasticsearch.port}") private int esPort; @Value("${elasticsearch.cluster.name}") private String esName; @Bean public TransportClient esClient() throws UnknownHostException { Settings settings = Settings.builder() .put("cluster.name", this.esName) // .put("cluster.name", "elasticsearch") .put("client.transport.sniff", true) .build(); InetSocketTransportAddress master = new InetSocketTransportAddress( InetAddress.getByName(esHost), esPort // InetAddress.getByName("192.168.100.106"), 8999 ); TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(master); return client; } } ``` 4、application.propertires ``` elasticsearch.cluster.name=xunwu elasticsearch.host=127.0.0.1 elasticsearch.port=9300 ```
关于centos7.2配置ipv6的问题
首先配置的ipv4的地址是可以通到网关,但是配置ipv6的地址ping自己都不通,ipv4依然没有问题。以下是我配置的命令,和网卡配置信息,哪位可以帮忙看一下![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/1.gif)![图片](https://img-ask.csdn.net/upload/201711/15/1510706389_857278.png)![图片](https://img-ask.csdn.net/upload/201711/15/1510706396_653703.png)![图片](https://img-ask.csdn.net/upload/201711/15/1510706472_944039.png)
利用Libnet开发包构造DNS响应报文?
1.有没有大佬会用Libnet网络开发包构造DNS响应报文啊??求助 现在在DNS响应报文的负载部分没搞懂,想填充回答部分的时候,用Wireshark抓到的包总显示格式错误。 ![图片说明](https://img-ask.csdn.net/upload/201912/25/1577263973_226861.png) 下面是我自己写的构造响应报文的代码: #include "libnet.h" #include "./libnet/libnet-functions.h" #include "/usr/local/include/libnet/libnet-functions.h" int main(int argc, char *argv[]) { char payload1[512]=""; int payload_s1=0; char payload2[512]=""; int payload_s2=0; char payload[512]=""; int payload_s=0; // char payload[1024]=""; // int payload_s=0; char err_buf[100] = ""; libnet_t *lib_net=NULL;//声明一个lib_net句柄 char query[]="www.baidu.com"; char answer[]="172.18.246.34"; libnet_ptag_t dns=0;//协议标记 libnet_ptag_t udp=0;//协议标记 libnet_ptag_t ip=0;//协议标记 libnet_ptag_t ethernet=0;//协议标记 unsigned char src_mac[6] = {0xf8,0xe9,0x03,0xb7,0xee,0x40}; unsigned char dst_mac[6] = {0x4c,0x34,0x88,0xda,0xb3,0x0d}; char *src_ip_str = "192.168.0.1"; //源主机IP地址 char *dst_ip_str = "192.168.0.108"; //目的主机IP地址 unsigned long src_ip,dst_ip = 0; // payload_s = sprintf(payload, "%s", "this is for the test"); payload_s1 = snprintf(payload1, sizeof payload1, "%c%s%c%c%c%c%c", (char)(strlen(query)&0xff), query, 0x00, 0x00, 0x01, 0x00, 0x01); payload_s2 = snprintf(payload2, sizeof payload2, "%c%s%c%c%c%c%c%c%c%s", (char)(strlen(query)&0xff), query, 0x00, 0x00, 0x01, 0x00, 0x01,0x00,(char)(strlen(answer)&0xff),answer); strcat(payload,payload1); strcat(payload,payload2), payload_s=payload_s1+payload_s2; // payload_s = snprintf(payload, sizeof payload, "%c%s%c%c%c%c%c", // (char)(strlen(query)&0xff), query, 0x00, 0x00, 0x01, 0x00, 0x01); lib_net = libnet_init(LIBNET_LINK_ADV, "eth1", err_buf); //初始化,返回一个libnet的句柄! if(NULL == lib_net) { perror("libnet_init"); exit(-1); } src_ip = libnet_name2addr4(lib_net,src_ip_str,LIBNET_RESOLVE); //将字符串类型的ip转换为顺序网络字节流 dst_ip = libnet_name2addr4(lib_net,dst_ip_str,LIBNET_RESOLVE); dns=libnet_build_dnsv4( 12, 0xe62e, 0x8180, 1, 1, 0, 0, payload, payload_s, lib_net, dns ); udp= libnet_build_udp( //构造udp数据包 53, 8080, 8+12+payload_s, 0, NULL, 0, lib_net, udp ); ip= libnet_build_ipv4( //构造ip数据包 20+8+12+payload_s, 0, 500, 0, 10, 17, 0, src_ip, dst_ip, NULL, 0, lib_net, ip ); ethernet= libnet_build_ethernet( //构造以太网数据包 (u_int8_t *)dst_mac, (u_int8_t *)src_mac, 0x800, NULL, 0, lib_net, ethernet ); int res = 0; res = libnet_write(lib_net); //发送数据包 if(res ==-1) { perror("libnet_write"); exit(-1); } libnet_destroy(lib_net); //销毁资源 printf("----ok-----\n"); return 0; }
openwrt 貌似是ipv6的问题
系统启动后一直循环下面的信息 [ 99.490000] device wlan0 entered promiscuous mode [ 99.590000] br-lan: port 2(wlan0) entered forwarding state [ 99.600000] br-lan: port 2(wlan0) entered forwarding state [ 99.610000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 101.390000] device wlan0 left promiscuous mode [ 101.390000] br-lan: port 2(wlan0) entered disabled state [ 102.520000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 102.540000] device wlan0 entered promiscuous mode [ 102.590000] br-lan: port 2(wlan0) entered forwarding state [ 102.600000] br-lan: port 2(wlan0) entered forwarding state [ 102.610000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 104.600000] br-lan: port 2(wlan0) entered forwarding state [ 105.550000] device wlan0 left promiscuous mode [ 105.550000] br-lan: port 2(wlan0) entered disabled state [ 107.100000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 107.140000] device wlan0 entered promiscuous mode [ 107.240000] br-lan: port 2(wlan0) entered forwarding state [ 107.250000] br-lan: port 2(wlan0) entered forwarding state [ 107.260000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 109.120000] device wlan0 left promiscuous mode [ 109.120000] br-lan: port 2(wlan0) entered disabled state [ 111.260000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 111.310000] device wlan0 entered promiscuous mode [ 111.370000] br-lan: port 2(wlan0) entered forwarding state [ 111.380000] br-lan: port 2(wlan0) entered forwarding state [ 111.390000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 113.380000] br-lan: port 2(wlan0) entered forwarding state [ 116.500000] device wlan0 left promiscuous mode [ 116.510000] br-lan: port 2(wlan0) entered disabled state [ 118.090000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 118.120000] device wlan0 entered promiscuous mode [ 118.180000] br-lan: port 2(wlan0) entered forwarding state [ 118.190000] br-lan: port 2(wlan0) entered forwarding state [ 118.200000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 120.140000] device wlan0 left promiscuous mode [ 120.140000] br-lan: port 2(wlan0) entered disabled state [ 121.920000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 121.960000] device wlan0 entered promiscuous mode [ 122.000000] br-lan: port 2(wlan0) entered forwarding state [ 122.010000] br-lan: port 2(wlan0) entered forwarding state [ 122.030000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 124.010000] br-lan: port 2(wlan0) entered forwarding state [ 126.700000] device wlan0 left promiscuous mode [ 126.710000] br-lan: port 2(wlan0) entered disabled state [ 128.440000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 128.470000] device wlan0 entered promiscuous mode [ 128.510000] br-lan: port 2(wlan0) entered forwarding state [ 128.520000] br-lan: port 2(wlan0) entered forwarding state [ 128.530000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 130.360000] device wlan0 left promiscuous mode [ 130.360000] br-lan: port 2(wlan0) entered disabled state [ 131.770000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 131.790000] device wlan0 entered promiscuous mode
C#通过Socket实现多文件传输
大概需求是客户端发送一个xml文件名给服务器,服务器返回xml文件。这一步没问题。 后面客户端需要解析xml文件,根据解析出的文件名,去服务器获取指定文件。现在问题是第一次服务器发送xml文件之后就侦听不到客户端后面的请求了 服务端代码: ``` #region 窗体加载 private void Form1_Load(object sender, EventArgs e) { Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//Socket设置、IPv4、Stream类型套接字、TCP协议 IPAddress ip = IPAddress.Any;//获取本机IP IPEndPoint point = new IPEndPoint(ip, 18002);//设置IP和端口 socketWatch.Bind(point);//绑定端口 memoEdit1.Text = "开始侦听..."; socketWatch.Listen(100);//最大连接数 Thread th = new Thread(SendFileFuncssss);//创建新线程 th.Start(socketWatch);//启动线程 th.IsBackground = true;//设置后台运行线程 } #endregion #region 根据客户端传输文件名发送指定文件 public void SendFileFuncssss(object obj) { Socket socket = obj as Socket; while (true) { Socket socketServices = socket.Accept(); byte[] buffer = new byte[1024]; int num = socketServices.Receive(buffer);//接收到字节数 string str = Encoding.UTF8.GetString(buffer, 1, num - 1);//接收到字符串 if (buffer[0] == 0)//表示接收到的是消息数据 { TxtAddContent(socketServices.RemoteEndPoint + "连接成功"); string FileName = str; if (FileName.Equals("AutoUpdater.xml"))//获取xml配置文件 { //发送XML文件到客户端 using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + FileName, FileMode.Open)) { byte[] arrFile = new byte[1024 * 1024 * 5]; int length = fs.Read(arrFile, 0, arrFile.Length); byte[] arrFileSend = new byte[length + 1]; arrFileSend[0] = 1; // 用来表示发送的是xml文件数据 Buffer.BlockCopy(arrFile, 0, arrFileSend, 1, length); socketServices.Send(arrFileSend);// 发送数据到客户端 } } if (!FileName.Equals("AutoUpdater.xml")) { //发送更新文件到客户端 using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "\\FileFolder\\" + FileName, FileMode.Open)) { byte[] arrFile = new byte[1024 * 1024 * 50]; int length = fs.Read(arrFile, 0, arrFile.Length);//获取文件长度 byte[] arrFileSend = new byte[length + 1]; arrFileSend[0] = 1; // 用来表示发送的是xml文件数据 Buffer.BlockCopy(arrFile, 0, arrFileSend, 1, length); socketServices.Send(arrFileSend);// 发送数据到服务端 } } } } } #endregion ``` 客户端代码: ``` Socket socketClient = obj as Socket; socketClient.Connect(ipEndPoint); #region 修改本地文件名称 string Oldpath = AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater.xml";//修改前名称 string Newpath = AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater_Back.xml";//修改后名称 if (File.Exists(Oldpath)) { File.Delete(Newpath); File.Move(Oldpath, Newpath);//更改文件名 } #endregion if (socketClient.Connected) { try { TxtReceiveAddContent("连接成功"); //发送链接成功提示 byte[] arrMsg = Encoding.UTF8.GetBytes("AutoUpdater.xml"); byte[] arrSendMsg = new byte[arrMsg.Length + 1];//加一位标识用于表示是文字消息还是文件 arrSendMsg[0] = 0; // 用来表示发送的是消息数据 Buffer.BlockCopy(arrMsg, 0, arrSendMsg, 1, arrMsg.Length); socketClient.Send(arrSendMsg); //获取文件 string dirPath = Application.StartupPath; byte[] buffer = new byte[1024 * 1024 * 5]; int lenght = socketClient.Receive(buffer); if (buffer[0] == 1) { using (FileStream fs = new FileStream(dirPath + "\\AutoUpdater.xml", FileMode.Create)) { fs.Write(buffer, 1, lenght - 1); } TxtReceiveAddContent("配置文件接收成功:AutoUpdater.xml");//追加提示备注 } #region 获取XML里需要更新的文件和需要删除的文件 List<string> updatelist = new List<string>();//需要更新的文件集合 List<string> deletelist = new List<string>();//需要更新的文件集合 //获取历史xml文件更新时间以及更新版本 XDocument Olddocument = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater_Back.xml"); //获取到XML的根元素进行操作 XElement Oldroot = Olddocument.Root; XElement Oldele = Oldroot.Element("UpdateInfo"); //获取旧更新时间标签的值 XElement OldUpdateTime = Oldele.Element("UpdateTime"); //获取旧版本号标签的值 XElement OldVersion = Oldele.Element("Version"); //获取最新xml文件更新时间以及更新版本 XDocument Newdocument = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "AutoUpdater.xml"); //获取到XML的根元素进行操作 XElement Newroot = Newdocument.Root; XElement Newele = Newroot.Element("UpdateInfo"); //获取旧更新时间标签的值 XElement NewUpdateTime = Newele.Element("UpdateTime"); //获取旧版本号标签的值 XElement NewVersion = Newele.Element("Version"); if (NewUpdateTime != OldUpdateTime || NewVersion != OldVersion) { //获取需要更新的文件列表 XElement NewUpList = Newroot.Element("UpdateList"); IEnumerable<XElement> UpList = NewUpList.Elements(); foreach (XElement item in UpList) { updatelist.Add(item.Value); } //获取需要删除的文件列表 XElement NewDelList = Newroot.Element("DeleteList"); IEnumerable<XElement> DelList = NewDelList.Elements(); foreach (XElement item in DelList) { deletelist.Add(item.Value); } } #endregion #region 循环获取更新文件 for (int i = 0; i < updatelist.Count; i++) { //发送链接成功提示 byte[] FileName = Encoding.UTF8.GetBytes(updatelist[i]); byte[] SendFileName = new byte[FileName.Length + 1];//加一位标识用于表示是文字消息还是文件 SendFileName[0] = 0; // 用来表示发送的是消息数据 Buffer.BlockCopy(FileName, 0, SendFileName, 1, FileName.Length); socketClient.Send(SendFileName); //获取文件 string FilePath = Application.StartupPath + "\\WebFile"; byte[] bufferByFile = new byte[1024 * 1024 * 50]; int lenghtByFile = socketClient.Receive(bufferByFile); if (bufferByFile[0] == 1) { using (FileStream fs = new FileStream(FilePath + "\\" + updatelist[i], FileMode.Create)) { fs.Write(bufferByFile, 1, lenghtByFile - 1); } TxtReceiveAddContent("文件接收成功:" + updatelist[i]); } } #endregion #region 循环删除指定文件 for (int i = 0; i < deletelist.Count; i++) { try { string path = AppDomain.CurrentDomain.BaseDirectory + "\\WebFile\\" + deletelist[i]; File.Delete(path); TxtReceiveAddContent("删除文件[" + deletelist[i] + "]成功"); } catch (Exception) { TxtReceiveAddContent("删除文件[" + deletelist[i] + "]失败"); continue; } } #endregion } catch (Exception ex) { File.Move(Newpath, Oldpath);//连接失败,还原文件名 MessageBox.Show(ex.ToString()); throw; } ``` 调试在客户端进循环的时候服务端侦听不到了 刚接触socket,多谢大佬们解答
相见恨晚的超实用网站
搞学习 知乎: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就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 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)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的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...
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问