Qt 使用官方的组播实例程序(multicast sender example)遇到的问题

使用Qt5.11.2的官方例子,在ubuntu18.04的虚拟机下向239.255.255.250 去发送组播可以发送出去。
但是在windows7下使用这个版本的官方例子怎么向239.255.255.250发送组播包就发不出去呢?wirshark就住不到包.哪位大佬知道这是什么情况?

关键代码具体如下

 QUdpSocket udpSocket4;
 udpSocket4.bind(QHostAddress::AnyIPv4,20000,QUdpSocket::ShareAddress);
 udpSocket4.setSocketOption(QAbstractSocket::MulticastTtlOption, 10);
 udpSocket4.writeDatagram(datagram, groupAddress4, 20000);

完整代码可参考Qt5.11的multicast sender example实例代码

1个回答

此问题已经解决了,我电脑安装了 VmWare虚拟机,将此虚拟机的两个网卡禁掉,同时关闭防火墙就可以了

u012938203
scrazying 多网卡这种问题怎么解决
3 个月之前 回复
u014491932
four-faith 波塞冬 感谢,同样的问题困扰了一整天
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
安卓调用百度地图sdk,可是返回坐标值一直是4.9E-324
我发现手机端使用正常,就是在使用夜神模拟器的时候出现的这样的问题。 打开夜神模拟器设置,发现我的软件有这个位置权限(手机端申请了动态权限) 但就是返回4.9E-324,location.getLocType()的返回值是167.我看文档说是没有获取到位置权限。 我现在就有一点迷惑了,动态的也申请了,也在AndroidManifest里面写了权限。 真心不知道这个bug咋解决。 以下是我mainactivity里面所有的代码: ``` package com.example.ppgo; import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import android.widget.Toast; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import java.util.ArrayList; import java.util.List; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; public class MainActivity extends AppCompatActivity { public LocationClient mLocationClient; private TextView positionText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLocationClient=new LocationClient(getApplicationContext()); mLocationClient.registerLocationListener(new MyLocationListener()); setContentView(R.layout.activity_main); positionText=(TextView)findViewById(R.id.position_text_view); List<String> permissionList=new ArrayList<>(); if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED){ permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION); } if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.READ_PHONE_STATE)!=PackageManager.PERMISSION_GRANTED){ permissionList.add(Manifest.permission.READ_PHONE_STATE); } if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest. permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){ permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } if(!permissionList.isEmpty()){ String[]permissions=permissionList.toArray(new String[permissionList.size()]); ActivityCompat.requestPermissions(MainActivity.this,permissions,1); }else { requestLocation(); } } private void requestLocation(){ initLocation(); mLocationClient.start(); } private void initLocation(){ LocationClientOption option =new LocationClientOption(); option.setScanSpan(5000); mLocationClient.setLocOption(option); } @Override protected void onDestroy() { super.onDestroy(); mLocationClient.stop(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); Log.e("Tag","执行了onRequestPermissionsResult函数"); switch (requestCode){ case 1: if (grantResults.length>0){ for(int result:grantResults){ if(result!=PackageManager.PERMISSION_GRANTED){ Toast.makeText(this,"必须同意所有权限才能使用本程序", Toast.LENGTH_SHORT).show(); finish(); return; } } requestLocation(); }else { Toast.makeText(this,"发生未知错误",Toast.LENGTH_SHORT).show(); finish(); } break; default: } } public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location){ StringBuilder currentPosition=new StringBuilder(); currentPosition.append("纬度:").append(location.getLatitude()).append("\n"); currentPosition.append("经线:").append(location.getLongitude()).append("\n"); currentPosition.append("国家:").append(location.getCountry()).append("\n"); currentPosition.append("省:").append(location.getProvince()).append("\n"); currentPosition.append("市:").append(location.getCity()).append("\n"); currentPosition.append("区:").append(location.getDistrict()).append("\n"); currentPosition.append("街道:").append(location.getStreet()).append("\n"); currentPosition.append("定位方式:"); if (location.getLocType() == BDLocation.TypeGpsLocation) { currentPosition.append("GPS"); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) { currentPosition.append("网络"); currentPosition.append(" 错误代码:"+location.getLocType()); } else if (location.getLocType() == BDLocation.TypeOffLineLocation){ currentPosition.append("离线定位成功,离线定位结果也是有效的"); } else if (location.getLocType() == BDLocation.TypeServerError){ currentPosition.append("服务端网络定位失败"); currentPosition.append(" 错误代码:"+location.getLocType()); } else if (location.getLocType() == BDLocation.TypeNetWorkException){ currentPosition.append("网络不同导致定位失败,请检查网络是否通畅"); } else if (location.getLocType() == BDLocation.TypeCriteriaException){ currentPosition.append("无法获取有效定位依据导致定位失败"); currentPosition.append(" 错误代码:"+location.getLocType()); } else { currentPosition.append(location.getLocType()); //这里打印出来location.getLocType()是162 currentPosition.append("老子也不知道是啥原因!!!"); } positionText.setText(currentPosition); } } } ``` 以下是我AndroidManifest里面的代码: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.ppgo"> <!-- 这个权限用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="mvxMsdG1homIlK4UjAWYP2itjxo09Dyy" /> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" /> </application> </manifest> ```
ip_multicast_if的作用
选项IP_MULTICAST_IF用于设置组播的默认默认网络接口,会从给定的网络接口发送,另一个网络接口会忽略此数据。默认的网络接口是哪一个?另一个又是哪一个?这个选项的应用场合是什么?
imx6ull评估板的以太网不工作
我用NXP官网的开发板 imx6ull-evk,收到开发板后无法启动系统,一直停止在starting kernel....;但是uboot下,可用dhcp,也可以和另一台同一网段的linux主机ping通; 我使用MFGTool重新更新系统,BSP版本4.1.15_2.0.0,更新完成后,可以正常启动kernel,但是无法使用以太网。在uboot模式使用dhcp命令,显示: BOOTP broadcast 1 *** Unhandled DHCP Option in OFFER/ACK: 213 DHCP client bound to address xxx.xxx.xxx.xxx (35 ms) *** Warning: no boot file name; using 'C0A80867.img' Using FEC1 device TFTP from server 0.0.0.0; our IP address is xxx.xxx.xxx.xxx; sending through gateway xxx.xxx.xxx.1 Filename 'C0A80867.img'. Load address: 0x80800000 Loading: * TFTP error: 'File not found' (1) Not retrying... 启动kernel后,输入ifconfig命令,显示: root@imx6ul7d:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:140 (140.0 B) TX bytes:140 (140.0 B) 没有动态分配inet地址,也没有inet6的地址, 设备树中的配置: &fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <&ethphy1>; status = "disabled"; }; &fec2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet2>; phy-mode = "rmii"; phy-handle = <&ethphy0>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0: ethernet-phy@2 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <2>; }; ethphy1: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; }; }; }; pinctrl_enet2的引脚是配置过的,以太网口的绿灯常亮,黄色间隔2s左右闪一下, 请各位大神帮忙看看
UDP组播禁止回送绑定问题
udp组播时,设置ip_multicast_loop选项,如下所示: int loopBack=0;//或1 a=setsockopt(sendSocket,IPPROTO_IP,IP_MULTICAST_LOOP,(char *)&loopBack,sizeof(int)); if(a==SOCKET_ERROR) { AfxMessageBox("loop set error"); return; } 运行时总是弹出loop set error。 请教一下各位大侠那写的有问题,其他bind(),的组播设定都没问题
X86与X64两种平台,实现组播功能,X86的组播接收正常,X64的组播接收不正常。
编译环境为:VS2017 编译版本为:debug 编译结果为:X64和X86 测试结果:X86接收组播正常,X64接收报文不正常 代码如下: 1. 初始化组播socket: int ret; udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = ::socket(AF_INET,SOCK_DGRAM,0); //创建socket if(INVALID_SOCKET == udpsockfd[Task[TaskId]->TaskUdpNo].sockfd) { Sleep(500); continue; } //1.设置允许其它进程使用绑定的地址 BOOL bReuse=TRUE; ret = ::setsockopt(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd,SOL_SOCKET,SO_REUSEADDR,(char*)&bReuse,sizeof(BOOL)); if(ret == SOCKET_ERROR) { ::shutdown(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, 2); ::closesocket(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd); udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = INVALID_SOCKET; Sleep(100); continue; } //2.绑定端口 SOCKADDR_IN addr; addr.sin_family = AF_INET; addr.sin_port = htons((WORD)udpsockfd[Task[TaskId]->TaskUdpNo].LocalUdpPort); addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); int len = sizeof(sockaddr); ret = bind(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd,(sockaddr*)&addr,len); //绑定后,只接收绑定设置的报文 if(ret==SOCKET_ERROR) { shutdown(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, 2); ::closesocket(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd); udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = INVALID_SOCKET; Sleep(100); continue; } //3.加入多播组 ip_mreq mcast; mcast.imr_interface.S_un.S_addr=INADDR_ANY; //mcast.imr_multiaddr.S_un.S_addr=inet_addr("236.8.8.8"); inet_pton(AF_INET, "236.8.8.8", (void*)&mcast.imr_multiaddr.S_un); if(setsockopt(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&mcast,sizeof(mcast))) { ::shutdown(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, 2); ::closesocket(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd); udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = INVALID_SOCKET; Sleep(100); continue; } //4.设置组播数据不回环 int loop=0;//1为数据回环 ret = ::setsockopt(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd,IPPROTO_IP,IP_MULTICAST_LOOP,(char*)&loop,sizeof(loop)); if(ret == SOCKET_ERROR) { ::shutdown(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, 2); ::closesocket(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd); udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = INVALID_SOCKET; Sleep(100); continue; } unsigned long ul1 = 1; //非阻塞模式 ret = ::ioctlsocket(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, FIONBIO, (unsigned long*)&ul1); if(ret == SOCKET_ERROR) { ::shutdown(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, 2); ::closesocket(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd); udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = INVALID_SOCKET; Sleep(100); continue; } //可以发送广播 if(::setsockopt(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, SOL_SOCKET, SO_BROADCAST,(char*)&ul1, sizeof (unsigned long))==SOCKET_ERROR) { ::shutdown(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd, 2); ::closesocket(udpsockfd[Task[TaskId]->TaskUdpNo].sockfd); udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = INVALID_SOCKET; Sleep(100); continue; } udpsockfd[Task[TaskId]->TaskUdpNo].InitialTaskUdp = TRUE; udpsockfd[Task[TaskId]->TaskUdpNo].LocalIp = MyIpA; 2. 接收组播报文: UINT taskUdpRecvPkt( LPVOID pParam ) { fd_set rdset,wrset; int max_fd,inaddrlen; struct sockaddr_in inaddr; BYTE i,TaskId = (BYTE)(LONG_PTR)pParam; struct timeval to, to_wait; if(g_UdpRECV_Has_Create)return 1; //接收线程只创建1个 g_UdpRECV_Has_Create = TRUE; bThreadBusy[LIMIT_TASK_NUM*3-1]=TRUE; while (true) { if(bThreadExit)break; FD_ZERO(&rdset); FD_ZERO(&wrset); max_fd = -1; for(i=0;i<MAX_UDP_NUM_TASK;i++) //多个udp接收,逐个判断 { if(i==UDP_NO_TASKFSA31C || i==UDP_NO_TASKFSA31C_B)continue; if(udpsockfd[i].InitialTaskUdp) { FD_SET(udpsockfd[i].sockfd, &rdset); FD_SET(udpsockfd[i].sockfd, &wrset); if(max_fd < (int)udpsockfd[i].sockfd) max_fd = (int)udpsockfd[i].sockfd; } } if(max_fd < 0 ){ Sleep(1000); //没有可用连接,等待1秒钟. continue; } to.tv_sec = 0; to.tv_usec = 5000; //5ms int status = select(max_fd+1, &rdset, &wrset,NULL, &to); if(status == 0) { // select timeout. continue; } else if((status < 0) && (errno ==EINTR)) { continue; } else if(status < 0) { perror("process_data_via_udp select error"); return 1; } //有报文进来,开始接收 for(i=0;i<MAX_UDP_NUM_TASK;i++) //多个udp接收,逐个判断 { if(i==UDP_NO_TASKFSA31C || i==UDP_NO_TASKFSA31C_B)continue; if(udpsockfd[i].InitialTaskUdp && (FD_ISSET(udpsockfd[i].sockfd, &rdset))) { int rx_len = recvfrom(udpsockfd[i].sockfd, (char*)&g_RecvUdpPkt[g_Net_UDPNrRec_Buf_Item_In_Pt].m_Buffer[0], MAX_NET_RECV_BUFFER_SIZE, 0, (struct sockaddr*)&inaddr, &inaddrlen); if((rx_len > 0)/* && (udpsockfd[i].MyIp != inaddr.sin_addr.s_addr)*/) { g_RecvUdpPkt[g_Net_UDPNrRec_Buf_Item_In_Pt].m_RecvIP = htonl(inaddr.sin_addr.s_addr); g_RecvUdpPkt[g_Net_UDPNrRec_Buf_Item_In_Pt].m_RecvLen = rx_len; g_RecvUdpPkt[g_Net_UDPNrRec_Buf_Item_In_Pt].m_UDPPORT = udpsockfd[i].LocalUdpPort; g_Net_UDPNrRec_Buf_Item_In_Pt++; if(g_Net_UDPNrRec_Buf_Item_In_Pt >= MAX_NET_RECV_UDP_ITEM_NUM) { g_Net_UDPNrRec_Buf_Item_In_Pt = 0; } } } } to_wait.tv_sec = 0; to_wait.tv_usec = 2000; //sleep select(0, NULL, NULL, NULL, &to_wait); //sleep 2 ms. } for(i=0;i<MAX_UDP_NUM_TASK;i++) { if(i==UDP_NO_TASKFSA31C || i==UDP_NO_TASKFSA31C_B)continue; if(udpsockfd[i].sockfd != INVALID_SOCKET) { shutdown(udpsockfd[i].sockfd, 2); ::closesocket(udpsockfd[i].sockfd); udpsockfd[i].sockfd = INVALID_SOCKET; } } bThreadBusy[LIMIT_TASK_NUM*3-1]=FALSE; return 0; }
一个ip可以加入多个多播组吗?
ip_multicast_if的作用,一台主机上如何使用多播并发实现FTP
Thinkpad T410/T420 Debian 9 不扫描无线网
很多年前,经高人指点, 在笔记本上装Debian的wifi一直用下面的方法: 先在/etc/apt/sources.list 添加 non-free 然后用下面两句命令 apt update apt install firmware-iwlwifi 一直非常顺利,直到最近用Debian 9 安装两台T410/T420遇到了同样的问题,用原来的方法安装firmware-iwlwifi但发现不了无线网,在网上找了不少帖子,但还是不得要领,所以需要专家指点。 下面是目前的状况: uname -a ``` Linux ThinkPad 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u1 (2019-09-20) x86_64 GNU/Linux ``` lspci -knn | grep -iA2 net ``` 00:19.0 Ethernet controller [0200]: Intel Corporation 82577LM Gigabit Network Connection [8086:10ea] (rev 06) Subsystem: Lenovo 82577LM Gigabit Network Connection [17aa:2153] Kernel driver in use: e1000e Kernel modules: e1000e -- 03:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6200 [8086:4239] (rev 35) Subsystem: Intel Corporation Centrino Advanced-N 6200 2x2 AGN [8086:1311] Kernel driver in use: iwlwifi ``` lshw -C net ``` *-network description: Ethernet interface product: 82577LM Gigabit Network Connection vendor: Intel Corporation physical id: 19 bus info: pci@0000:00:19.0 logical name: enp0s25 version: 06 serial: 00:26:2d:fe:64:8d size: 100Mbit/s capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.12-1 ip=192.168.1.108 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resources: irq:24 memory:f2600000-f261ffff memory:f2625000-f2625fff ioport:1820(size=32) *-network description: Wireless interface product: Centrino Advanced-N 6200 vendor: Intel Corporation physical id: 0 bus info: pci@0000:03:00.0 logical name: wlp3s0 version: 35 serial: be:71:c0:02:27:55 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=4.9.0-11-amd64 firmware=9.221.4.1 build 25532 latency=0 link=no multicast=yes wireless=IEEE 802.11 resources: irq:28 memory:f2400000-f2401fff ``` dmesg|grep iwl ``` [ 10.747495] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control [ 10.795505] iwlwifi 0000:03:00.0: firmware: direct-loading firmware iwlwifi-6000-4.ucode [ 10.795652] iwlwifi 0000:03:00.0: loaded firmware version 9.221.4.1 build 25532 op_mode iwldvm [ 10.851389] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUG disabled [ 10.851390] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUGFS disabled [ 10.851391] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled [ 10.851393] iwlwifi 0000:03:00.0: Detected Intel(R) Centrino(R) Advanced-N 6200 AGN, REV=0x74 [ 10.852583] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 10.940410] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs' [ 13.750028] iwlwifi 0000:03:00.0 wlp3s0: renamed from wlan0 [ 23.111234] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.118141] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.118233] iwlwifi 0000:03:00.0: Radio type=0x1-0x3-0x1 [ 23.342117] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.349036] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.349127] iwlwifi 0000:03:00.0: Radio type=0x1-0x3-0x1 [ 23.446053] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.452963] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.453055] iwlwifi 0000:03:00.0: Radio type=0x1-0x3-0x1 [ 23.678544] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.685461] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 23.685553] iwlwifi 0000:03:00.0: Radio type=0x1-0x3-0x1 ``` lshw -numeric -class network ``` *-network description: Ethernet interface product: 82577LM Gigabit Network Connection [8086:10EA] vendor: Intel Corporation [8086] physical id: 19 bus info: pci@0000:00:19.0 logical name: enp0s25 version: 06 serial: 00:26:2d:fe:64:8d size: 100Mbit/s capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.12-1 ip=192.168.1.108 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s resources: irq:24 memory:f2600000-f261ffff memory:f2625000-f2625fff ioport:1820(size=32) *-network description: Wireless interface product: Centrino Advanced-N 6200 [8086:4239] vendor: Intel Corporation [8086] physical id: 0 bus info: pci@0000:03:00.0 logical name: wlp3s0 version: 35 serial: ca:56:d9:d1:6c:73 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=4.9.0-11-amd64 firmware=9.221.4.1 build 25532 latency=0 link=no multicast=yes wireless=IEEE 802.11 resources: irq:27 memory:f2400000-f2401fff ``` nmcli dev status ``` DEVICE TYPE STATE CONNECTION wlp3s0 wifi disconnected -- enp0s25 ethernet unmanaged -- lo loopback unmanaged -- ``` iwconfig ``` lo no wireless extensions. enp0s25 no wireless extensions. wlp3s0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=15 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off iw dev wlp3s0 info Interface wlp3s0 ifindex 3 wdev 0x1 addr ce:5a:75:cc:2e:f3 type managed wiphy 0 txpower 15.00 dBm ```
Android udp接收不到组播,请问如何解决?
能接收到udp数据,但是接收不到udp组播数据,请各位大神帮帮忙,万分感谢! 代码如下: package ncepu.wsy.udp_multicast_server; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; import java.sql.Date; import java.text.SimpleDateFormat; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.MulticastLock; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.LinearLayout; import android.widget.TextView; @SuppressLint({ "SimpleDateFormat", "HandlerLeak" }) public class MulticastServer extends Activity { private MulticastSocket ms; private static String MulticastHost="238.9.9.1"; private static int PORT = 8302; InetAddress receiveAddress; String result = ""; private MulticastLock multicastLock; LinearLayout layout; String baotou=""; String mingling=""; String minglingleixing=""; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); allowMulticast(); setContentView(R.layout.activity_main); layout = (LinearLayout) findViewById(R.id.layout); new Thread(){ public void run() { try { ms = new MulticastSocket(PORT); receiveAddress=InetAddress.getByName(MulticastHost); ms.joinGroup(receiveAddress); } catch (Exception e) { e.printStackTrace(); } byte data[] = new byte[512]; DatagramPacket dp = new DatagramPacket(data, 512); while (true) { try { ms.receive(dp); result = new String(data, 0, dp.getLength()); Message msg = new Message(); msg.what = 1; hd.sendMessage(msg); } catch (Exception e) { e.printStackTrace(); } } }; }.start(); } Handler hd = new Handler(){ @SuppressWarnings("unused") @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch(msg.what){ case 1: SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 String str = formatter.format(curDate); TextView tv =new TextView(MulticastServer.this); tv.setText("result--》"+result); layout.addView(tv); break; } } }; private void allowMulticast() { WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); multicastLock = wifiManager.createMulticastLock("multicast.test"); multicastLock.acquire(); } } <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" tools:context=".MainActivity" > </LinearLayout> </ScrollView> <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ncepu.wsy.udp_multicast_server" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="ncepu.wsy.udp_multicast_server.MulticastServer" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Intermediate Rounds for Multicasting
Problem Description Consider a communication network consisting of N nodes numbered from 1 to N. The nodes are interconnected in such a way that the network has the shape of a rooted tree, with node 1 as the root. Node 1 wants to send a message (the same message) to each node which is a leaf in the tree (i.e. has no sons) – this operation is known as multicast. A message can only be sent from one node to one of its descendants (including the node itself). Each edge of the tree has an associated cost and the cost of sending a message from a node X to one of its descendants Y is the sum of the costs of the edges on the unique path from X to Y (if X=Y, then the cost is 0). The total cost of a multicast strategy is the sum of the costs of sending each message. In order to reach its goal, node 1 will use the following multicast strategy: The strategy consists of K intermediate rounds. In the first round, node 1 sends an individual message to a subset of nodes S1 such that each leaf is a descendant of exactly one node X in S1 (this means that any node X in S1 is not a descendant of another node Y in S1). In round i (2<=i<=K), each node X in Si-1 sends an individual message to a subset Si,X of nodes from its subtree, such that each leaf which is a descendant of X is also a descendant of exactly one node in Si,X. The set of nodes Si is the union of the sets Si,X, for each X in Si-1. In the end, each node X in Sk must send a message to each leaf node which is a descendant of X. Given the communication network, the cost of each edge and the number of intermediate rounds K, find the minimum total cost of a multicast strategy. Input The first line of input contains an integer number T, representing the number of test cases to follow. The first line of each test case contains 2 integer numbers: N (1<=N<=333) and K (1<=K<=10). The next N-1 lines contain 3 integers each: A, B and C (1<=C<=10.000), meaning that node B is a son of node A and the edge (A,B) has cost C. Output For each of the T test cases, in the order given in the input, print one line containing the minimum total cost of a multicast strategy having the specified properties. Sample Input 1 6 1 1 2 10 1 3 11 2 4 21 2 5 17 3 6 7 Sample Output 66
NTP服务器问题,麻烦大神帮忙看一下。
下面是ntp的服务器的配置文件。 目前遇到同步时时间是对的,过一段时间就会慢30分钟。不知与本NTP服务器有关联,本配置文件是否正确麻烦看一下。 ``` # For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5). driftfile /var/lib/ntp/drift # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery # Permit all access over the loopback interface. This could # be tightened as well, but to do so would effect some of # the administrative functions. restrict 127.0.0.1 restrict -6 ::1 # Hosts on local network are less restricted. #restrict 10.200.0.6 mask 255.255.255.0 # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server ntp.ntsc.ac.cn prefer server time.windows.com server time.nist.gov server pool.ntp.org server ntp.neu.edu.cn server ntp.gwadar.cn server 0.centos.pool.ntp.org server 1.centos.pool.ntp.org #broadcast 10.200.0.6 autokey # broadcast server #broadcastclient # broadcast client #broadcast 224.0.1.1 autokey # multicast server #multicastclient 224.0.1.1 # multicast client #manycastserver 239.255.254.254 # manycast server #manycastclient 239.255.254.254 autokey # manycast client #allow update time by the upper server restrict ntp.ntsc.ac.cn restrict time.windows.com restrict pool.ntp.org restrict ntp.neu.edu.cn restrict ntp.gwadar.cn restrict 0.centos.pool.ntp.org restrict 1.centos.pool.ntp.org restrict time.nist.gov restrict 127.0.0.1 restrict -6 ::1 #undisciplinet local clock.this is a fake driver intended for backup #and when no outside source of synchronized time is available. server 127.127.1.0 #local clock fudge 127.127.1.0 stratum 10 # Enable public key cryptography. #crypto includefile /etc/ntp/crypto/pw # Key file containing the keys and key identifiers used when operating # with symmetric key cryptography. keys /etc/ntp/keys # Specify the key identifiers which are trusted. #trustedkey 4 8 42 # Specify the key identifier to use with the ntpdc utility. #requestkey 8 # Specify the key identifier to use with the ntpq utility. #controlkey 8 # Enable writing of statistics records. #statistics clockstats cryptostats loopstats peerstats ```
Navicat 连接不上虚拟机centos的mysql
[root@bogon ~]# service mysql start Redirecting to /bin/systemctl start mysql.service [root@bogon ~]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.6.45 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> grant all privileges on *.* to root@"%" identified by "new_mysql"; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on *.* to root@"bogon" identified by "new_mysql"; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye [root@bogon ~]# iptables -F [root@bogon ~]# systemctl stop firewalld [root@bogon ~]# systemctl disable firewalld [root@bogon ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.131.131 netmask 255.255.255.0 broadcast 192.168.131.255 inet6 fe80::20c:29ff:fe4e:4a5b prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4e:4a:5b txqueuelen 1000 (Ethernet) RX packets 284 bytes 28044 (27.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 395 bytes 31836 (31.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:d0:d8:4b txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@bogon ~]# ping www.baidu.com PING www.a.shifen.com (163.177.151.109) 56(84) bytes of data. 64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=1 ttl=128 time=38.4 ms 64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=2 ttl=128 time=34.7 ms 64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=3 ttl=128 time=33.1 ms ^A64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=4 ttl=128 time=33.2 ms 64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=5 ttl=128 time=30.1 ms 64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=6 ttl=128 time=32.9 ms 64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=7 ttl=128 time=47.0 ms http://img.mukewang.com/climg/5d3d2999000169bb05660668.jpg 虚拟机网络是通的 Navicat的ip地址也没错 root的密码也没错 为什么就是连接不上呢?
不同端口号加入到同一组播地址,关闭套接字时为什么会有影响?
有两个设备,使用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()函数会堵塞一会,没有数据接收,请问这是为什么?
有人知道网络中FRM(Free Riding Multicast)什么意思么
有人知道网络中FRM(Free Riding Multicast)什么意思么?
求助!使用wpa_supplicant连接WIFI问题
公司有个项目需要手机同时打开wifi+4g wifi链接专用设备, 4G与外网通信 (众所周知,手机打开wifi后,4g将自动关闭) 研发阶段用的 红米手机,通过如下方法能实现 adb命令: 挂载wifi网卡 insmod /system/lib/modules/wlan.ko 开启wifi网卡 netcfg wlan0 up 后台链接wifi wpa_supplicant -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -B dhcp自动获取ip dhcpcd wlan0 设置路由 ip route add 192.0.0.0/8 dev wlan0 临上线客户选用了mate s 手机,机子采购回来以后,先root然后adb执行如上命令,到wpa_supplicant -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -B这句的时候 logcat显示 11-08 20:09:08.338 13647-13647/? E/wpa_supplicant: interface wlan0 11-08 20:09:08.582 13647-13647/? I/wpa_supplicant: rfkill: Cannot open RFKILL control device 11-08 20:09:08.338 13647-13647/? E/wpa_supplicant: WIFI_lib_init WIFI_lib_init WIFI_lib_init WIFI_lib_init 11-08 20:09:08.341 13647-13647/? I/wpa_supplicant: nl80211: Could not re-add multicast membership for vendor events: -2 (No such file or directory) 11-08 20:09:08.470 13647-13647/? E/wpa_supplicant: Own WAPI MAC address: dc:ee:06:f0:00:30 11-08 20:09:08.582 13647-13647/? E/wpa_supplicant: interface p2p-dev-wlan0 11-08 20:09:08.582 13647-13647/? I/wpa_supplicant: rfkill: Cannot open RFKILL control device 11-08 20:09:08.582 13647-13647/? E/wpa_supplicant: Could not read interface p2p-dev-wlan0 flags: No such device 11-08 20:09:08.588 13647-13647/? I/wpa_supplicant: nl80211: Could not re-add multicast membership for vendor events: -2 (No such file or directory) 11-08 20:09:08.588 13647-13647/? E/wpa_supplicant: Own WAPI MAC address: 00:00:00:00:00:00 后面dhcp的就卡住不会执行了..... 看样子是没有链接上wlan 已经折腾了一周多了,google,baidu相关的资料很少. 有没有高手知道这个问题大概出在什么地方呢?求大师指条明路, 另外,华为机子里没有wifi模块/system/lib/modules/wlan.ko 但是关闭wifi后模块不会被卸载所以没有执行/system/lib/modules/wlan.ko,不知道有没有影响
双系统 Ubuntu 无法联网,ping不通网关
这几天在win8的台式机上装了个Ubuntu 14.04双系统,64位的,但是在Ubuntu系统中怎么折腾也不能联网,照着网上各种说法配置都不行,路由器网关ping不通,报 Destination Host Unreachable,但ping本机地址正常,重启到windows系统也可以正常上网。 特来请教各位。下面详细说一下情况: <br/> 系统配置:Win8 + Ubuntu 14.04LTS 双系统64位UEFI启动,其中Ubuntu全新安装 网络环境:校园网,通过路由器 分配静态IP上网 <br/> 填了下IP地址、网关和DNS什么的,就按照网上说的,修改/etc/network/interfaces: 本来里边只有一个环回地址,添加自己的静态IP设置: auto eth0 iface eth0 inet static address 192.168.1.8 netmask 255.255.255.0 gateway 192.168.1.1 在/etc/resolv.conf 也加入了DNS地址: nameserver ...... <br/> 相同的配置在windows下毫无问题,但在这个Ubuntu下就不行,测试ping的结果: ping 127.0.0.1,正常 ping localhost,正常 ping 192.168.1.8(自己的IP),正常 ping 192.168.1.1(网关),报的信息如下: PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. From 192.168.1.8 icmp_seq=1 Destination Host Unreachable From 192.168.1.8 icmp_seq=2 Destination Host Unreachable ... 完全不通。 ping 外网地址就更不行了。ping DNS地址同样报 Destination Host Unreachable ping 192.168.1.7(局域网里另一台开着的电脑),也不通。 而且用局域网里另一台电脑看路由器的连接列表,根本没有我这个IP!其他机器上网都正常。 <br/> 网线确定应该是插好的,因为重启后切换成windows就可以正常联网。。 <br/> 期间N次更改auto eth0相关的设置,N次重启网络 /etc/init.d/networking restart 还有 ifdown/ifup eth0 也试过,重启系统也试过,都没有作用。 <br/> 用ifconfig -a命令看过了,列出的貌似正常,一个eth0,其IP和网关就是我设的那个,但接收发送包数都是0: ifconfig -a eth0 Link encap:以太网 硬件地址 74:**:**:**:**:3f inet 地址:192.168.1.8 广播:192.168.1.255 掩码:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 跃点数:1 接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0 发送数据包:0 错误:0 丢弃:0 过载:0 载波:0 碰撞:0 发送队列长度:1000 接收字节:0 (0.0 B) 发送字节:0 (0.0 B) lo Link encap:本地环回 inet 地址:127.0.0.1 掩码:255.0.0.0 inet6 地址: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 跃点数:1 接收数据包:138 错误:0 丢弃:0 过载:0 帧数:0 发送数据包:138 错误:0 丢弃:0 过载:0 载波:0 碰撞:0 发送队列长度:0 接收字节:10645 (10.6 KB) 发送字节:10645 (10.6 KB) 网卡MAC地址也没有错。 <br/> route -n 命令显示信息: 内核 IP 路由表 目标 网关 子网掩码 标志 跃点 引用 使用 接口 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 <br/> 不知道是不是网卡的问题,贴一下网卡型号:瑞昱 RTL8168/8111/8112 Gigabit Ethernet Controller,宏碁制造 <br/> 实在不知道问题在哪儿了,路过的还请指点一下,感激不尽!
ubuntu 16.04 更改IP问题
刚刚接触ubuntu,发现一个很奇怪的问题。 我在/etc/network/interfaces下面的配置是这样的: auto lo iface lo inet loopback auto ens33 iface ens33 inet static address 192.168.4.9 network 255.255.255.0 gateway 192.168.4.1 执行sudo /etc/init.d/networking restart ,重启网络。 然而在ifconfig里面的ens33是这样的: ens33 Link encap:以太网 硬件地址 00:0c:29:30:b0:3f inet 地址:192.168.4.131 广播:192.168.4.255 掩码:255.255.255.0 inet6 地址: fe80::de6b:e705:8265:cd27/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1 接收数据包:327 错误:0 丢弃:0 过载:0 帧数:0 发送数据包:493 错误:0 丢弃:0 过载:0 载波:0 碰撞:0 发送队列长度:1000 接收字节:31161 (31.1 KB) 发送字节:59749 (59.7 KB) 在ip addr 命令里面的ens33是这样的: 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:30:b0:3f brd ff:ff:ff:ff:ff:ff inet 192.168.4.131/24 brd 192.168.4.255 scope global dynamic ens33 valid_lft 1259sec preferred_lft 1259sec inet 192.168.4.9/24 brd 192.168.4.255 scope global secondary ens33 valid_lft forever preferred_lft forever inet6 fe80::de6b:e705:8265:cd27/64 scope link valid_lft forever preferred_lft forever 192.168.4.131 这个IP是dhcp获取的动态IP,现在我修改完为静态IP4.9之后重启网络,发现有两个IP存在。这两个IP都是可以ping得通网关的。为什么会有两个IP?在nmtui里面并没有进行配置。怎么弄更改interface文件之后,只有一个IP生效?
android应用程序权限问题
最近初学android,弄好一个apk给同事测试,在权限管理中发现apk很多权限是我没申请过的,其中有一个权限是“彩信发送权限”,在网上查了一下,说是开启网络权限了都会有这个,而“获取联系人”和“读取通话记录”这两个权限则不知道是怎么开启的。在小米和魅族手机上都这样。我的权限列表如下: ``` <uses-feature android:name="android.hardware.touchscreen" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> ```
我装的centos虚拟机为何会有两个ip地址?
# 我使用ifconfig 命令查看结果如下: [root@localhost network-scripts]# **ifconfig** eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 **inet 192.168.1.145** netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe93:4fd0 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:93:4f:d0 txqueuelen 1000 (Ethernet) RX packets 10466 bytes 1281227 (1.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2912 bytes 278389 (271.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # 我查看配置文件结果如下: [root@localhost network-scripts]# **cat ifcfg-eno16777736 ** TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 UUID=6d5af5cd-0db3-4624-956a-a18593f4f8a7 DEVICE=eno16777736 ONBOOT=yes **IPADDR=192.168.1.107** PREFIX=24 GATEWAY=192.168.1.1 DNS1=202.106.46.151 PEERDNS=no PEERROUTES=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes 而且我在windows下这两个ip地址都可以ping通。求解答
外网如何访问虚拟机中的DOCKER运行时的IP
问题描述:物理机一台 IP:192.168.1.54 虚拟机一台IP:192.168.1.48 (桥接模式 直连物理网络) 在该虚拟机中安装了docker,执行ifconfig docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.42.1 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::5484:7aff:fefe:9799 prefixlen 64 scopeid 0x20<link> ether 56:84:7a:fe:97:99 txqueuelen 0 (Ethernet) RX packets 58444 bytes 3156853 (3.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 33368 bytes 2511542 (2.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 执行docker run -d --name ods20160526 -p 8080:8080 order/ods 命令(主要就是执行一个Java -jar 命令) 产生了当前容器的 ip:172.17.0.2 现在我在物理机上无法ping通 172.17.0.2 因为不是一个网段的,除了加路由表的方法外 还有什么办法可以从物理机直接ping通docker中的 172.17.0.2
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在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.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
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
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶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 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问