当前位置: 首页 > news >正文

镇江网站wordpress手机登陆

镇江网站,wordpress手机登陆,阿里seo排名优化软件,wordpress 积分商城TCP/IP UDP广播无法发送或者接收数据 在看《TCP/IP 网络编程》这本书的时候,看到广播那一节,跟着书上写代码,怎么写都不行,广播就是没法发送/接收,发送端一直在发送数据,接收端就是没有反应。 对了好几遍…

TCP/IP UDP广播无法发送或者接收数据

在看《TCP/IP 网络编程》这本书的时候,看到广播那一节,跟着书上写代码,怎么写都不行,广播就是没法发送/接收,发送端一直在发送数据,接收端就是没有反应。

对了好几遍源码,没有问题。实在是愁人。

最后查了很多资料,确定是网卡的问题。

现在的计算机都是多网卡,至少是有线+无线网卡,如果安装了虚拟机的话,还会有虚拟网卡。

广播地址无法区分网卡,只能按照默认网卡优先级发送,这就导致我们的数据没有走那个我们需要的网卡发送出去。进而导致收不到数据。

解决办法

  1. 禁用一些网卡,将用不到的网卡全部禁用掉
  2. 在代码里添加绑定IP地址的逻辑,绑定到具体的网卡IP

我是用的是第2种方式,比较方便灵活。

发送端Linux源码:

#include <arpa/inet.h>
#include <asm-generic/socket.h>
#include <cstdio>
#include <cstring>
#include <fstream>
#include <iostream>
#include <iterator>
#include <linux/in.h>
#include <sys/endian.h>
#include <sys/socket.h>
#include <unistd.h>#ifndef FILEPATH
#define FILEPATH "../news.txt"
#endifconstexpr int BUF_SIZE = 30;int main(int argc, char* argv[])
{if (argc != 4) {std::cout << "Usage: " << argv[0] << "<Self IP> <Boardcast IP> <PORT>" << std::endl;return 0;}int send_socket = socket(PF_INET, SOCK_DGRAM, 0);// 绑定到具体的网卡IPsockaddr_in self_adr;std::memset(&self_adr, 0, sizeof(self_adr));self_adr.sin_family = AF_INET;self_adr.sin_addr.s_addr = inet_addr(argv[1]);self_adr.sin_port = 0; // 随机分配一个端口int res = bind(send_socket, (sockaddr*)&self_adr, sizeof(self_adr));if (res == -1) {std::cout << "bind error";}sockaddr_in broad_adr;std::memset(&broad_adr, 0, sizeof(broad_adr));broad_adr.sin_family = AF_INET;broad_adr.sin_addr.s_addr = inet_addr(argv[2]);broad_adr.sin_port = htons(std::atoi(argv[3]));int so_brd = 1;int rtn = setsockopt(send_socket, SOL_SOCKET, SO_BROADCAST, &so_brd, sizeof(so_brd));if (rtn == -1) {std::cout << "setsockopt error" << std::endl;return 0;}std::ifstream fi { FILEPATH };while (!fi.eof()) {std::string msg;fi >> msg;int s = sendto(send_socket, msg.c_str(), msg.size(), 0, (sockaddr*)&broad_adr, sizeof(broad_adr));std::cout << s << ":" << msg << std::endl;sleep(2);}close(send_socket);return 0;
}

接收端Linux源码:

#include <arpa/inet.h>
#include <cstring>
#include <iostream>
#include <linux/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>constexpr int BUF_SIZE = 30;int main(int argc, char* argv[])
{if (argc != 2) {std::cout << "Usage: " << argv[0] << " <PORT>" << std::endl;return 0;}int recv_sock = socket(PF_INET, SOCK_DGRAM, 0);sockaddr_in adr;std::memset(&adr, 0, sizeof(adr));adr.sin_family = AF_INET;adr.sin_addr.s_addr = htonl(INADDR_ANY);int port = std::atoi(argv[1]);adr.sin_port = htons(port);std::cout << "PORT: " << port << std::endl;int rtn = bind(recv_sock, (sockaddr*)&adr, sizeof(adr));if (rtn == -1) {std::cout << "bind error" << std::endl;return 0;}char buf[BUF_SIZE] = { 0 };while (true) {sockaddr_in src_adr;socklen_t sl = 0;int l = recvfrom(recv_sock, buf, BUF_SIZE - 1, 0, (sockaddr*)&src_adr, &sl);std::string srcIp = inet_ntoa(src_adr.sin_addr);std::cout << srcIp << " - ";if (l < 0) {break;}buf[l] = 0;std::cout << buf;}close(recv_sock);return 0;
}

接收端Win源码:

#include <WS2tcpip.h>
#include <WinSock2.h>
#include <cstdlib>
#include <cstring>
#include <iostream>constexpr int BUF_SIZE = 30;int main(int argc, char* argv[])
{if (argc != 2) {std::cout << "Usage: " << argv[0] << " <PORT>" << std::endl;return 0;}WSADATA wsaData;if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {std::cout << "WSA error" << std::endl;return 0;}SOCKET recvSock = socket(PF_INET, SOCK_DGRAM, 0);SOCKADDR_IN adr;std::memset(&adr, 0, sizeof(adr));adr.sin_family = AF_INET;adr.sin_addr.s_addr = htonl(INADDR_ANY);int port = std::atoi(argv[1]);adr.sin_port = htons(port);int rtn = bind(recvSock, (SOCKADDR*)&adr, sizeof(adr));if (rtn == SOCKET_ERROR) {std::cout << "bind error" << std::endl;return 0;}std::cout << "服务已启动:" << port << std::endl;char buf[BUF_SIZE] = { 0 };while (true) {int strLen = recvfrom(recvSock, buf, BUF_SIZE - 1, 0, nullptr, 0);if (strLen < 0) {break;}buf[strLen] = 0;std::cout << buf << std::endl;}closesocket(recvSock);WSACleanup();return 0;
}
http://www.yayakq.cn/news/452126/

相关文章:

  • wordpress导出网页seoul是什么意思
  • 网站开发前后端分离要多少钱大型展厅设计公司
  • 小厂建网站wordpress文章导航插件
  • 网站优化建设绵阳有哪些网站可以用
  • 怎么创建公众号微信做竞价的网站还用做seo
  • 网站个人备案做企业网站网页紧急升级恢复
  • 造价员可以做兼职的网站在线代理浏览网站
  • 做网站代刷能赚多少钱和幼儿做网站爱
  • flash国外网站东莞招聘网有哪些比较好
  • dz地方门户网站制作临桂住房和城乡建设局网站
  • asp.net网站开发案例教程怎么部署wordpress
  • 如何做网站架构用个人免费空间快速建立个人网站后方平台
  • 公司做网站需要什么资料网站开发面试都会问什么问题
  • 网站顶部公告代码中国交通建设集团有限公司招聘
  • app和网站的关系如何建网络营销网站
  • 网站建设签约广告设计就业前景
  • 做视频网站一般多少钱dedecms网站地图前台路径不修改
  • 网站空间过期tomcat网站开发
  • 周到的网站建设各大网站发布信息
  • 个人做网站的流程关键词权重
  • 手机网站建设技术自建网站怎么关闭
  • 什么网站容易收录建设网站公司需要哪些证件
  • 苏州建设网站公司建站行业的发展趋势
  • 怎么查看网站的ftp地址高校网站建设需求分析报告
  • 陕西省建设网站 五大员过期上海服装贸易公司排名
  • 网页设计与网站建设教学视频wordpress 优酷 html5
  • 服装品牌网站怎么做域名备案用的网站建设方案
  • 网站的建设与设计论文在北京注册公司有什么好处
  • 上海网站建设阿里云发布网站
  • 天津 网站建设摄影网站设计与实现