中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

大數(shù)據(jù)平臺建站最經(jīng)典的營銷案例

大數(shù)據(jù)平臺建站,最經(jīng)典的營銷案例,徐州地區(qū)網(wǎng)站建設(shè),wap和appTCP/IP UDP廣播無法發(fā)送或者接收數(shù)據(jù) 在看《TCP/IP 網(wǎng)絡(luò)編程》這本書的時候,看到廣播那一節(jié),跟著書上寫代碼,怎么寫都不行,廣播就是沒法發(fā)送/接收,發(fā)送端一直在發(fā)送數(shù)據(jù),接收端就是沒有反應(yīng)。 對了好幾遍…

TCP/IP UDP廣播無法發(fā)送或者接收數(shù)據(jù)

在看《TCP/IP 網(wǎng)絡(luò)編程》這本書的時候,看到廣播那一節(jié),跟著書上寫代碼,怎么寫都不行,廣播就是沒法發(fā)送/接收,發(fā)送端一直在發(fā)送數(shù)據(jù),接收端就是沒有反應(yīng)。

對了好幾遍源碼,沒有問題。實在是愁人。

最后查了很多資料,確定是網(wǎng)卡的問題。

現(xiàn)在的計算機都是多網(wǎng)卡,至少是有線+無線網(wǎng)卡,如果安裝了虛擬機的話,還會有虛擬網(wǎng)卡。

廣播地址無法區(qū)分網(wǎng)卡,只能按照默認網(wǎng)卡優(yōu)先級發(fā)送,這就導(dǎo)致我們的數(shù)據(jù)沒有走那個我們需要的網(wǎng)卡發(fā)送出去。進而導(dǎo)致收不到數(shù)據(jù)。

解決辦法

  1. 禁用一些網(wǎng)卡,將用不到的網(wǎng)卡全部禁用掉
  2. 在代碼里添加綁定IP地址的邏輯,綁定到具體的網(wǎng)卡IP

我是用的是第2種方式,比較方便靈活。

發(fā)送端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);// 綁定到具體的網(wǎng)卡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 << "服務(wù)已啟動:" << 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.risenshineclean.com/news/51888.html

相關(guān)文章:

  • wordpress軟件站模板站長工具seo排名查詢
  • 做調(diào)查問卷賺錢網(wǎng)站國外株洲24小時新聞
  • 威海做網(wǎng)站的谷歌搜索引擎優(yōu)化seo
  • 網(wǎng)站模版調(diào)用標簽教程站長檢測工具
  • Wordpress怎么上傳html文件泰州網(wǎng)站優(yōu)化公司
  • 知名的政府網(wǎng)站建設(shè)企業(yè)鏈接點擊量軟件
  • 網(wǎng)站建設(shè)公司 廣告法被處罰營銷客戶管理系統(tǒng)
  • wordpress網(wǎng)站正在維護中網(wǎng)站模板平臺資源
  • 網(wǎng)頁模板怎么做網(wǎng)站關(guān)鍵詞優(yōu)化多少錢
  • 龍巖龍硿洞在線優(yōu)化seo
  • 建設(shè)網(wǎng)站實驗活動小結(jié)百度快速排名優(yōu)化工具
  • 政府網(wǎng)站欄目架構(gòu)大學(xué)生網(wǎng)頁設(shè)計主題
  • 網(wǎng)站建設(shè)推廣頁農(nóng)業(yè)推廣
  • 如何維護網(wǎng)站百度seo排名優(yōu)化軟件化
  • 做優(yōu)化的網(wǎng)站電話軟文推廣一般發(fā)布在哪些平臺
  • wordpress 安全 插件重慶seo公司排名
  • 網(wǎng)站建設(shè) 有聊天工具的嗎百度一下你知道
  • seo需要會網(wǎng)站建設(shè)嗎web個人網(wǎng)站設(shè)計代碼
  • wordpress get locale邵陽網(wǎng)站seo
  • 偃師制作網(wǎng)站怎么去營銷自己的產(chǎn)品
  • 江蘇緣生源建設(shè)工程有限公司網(wǎng)站游戲推廣拉人渠道
  • 南京建設(shè)銀行網(wǎng)站首頁想要推廣頁
  • 高仿微博wordpressseo狂人
  • 湖南專業(yè)做網(wǎng)站公司怎樣推廣app
  • 上海如何優(yōu)化網(wǎng)站新河seo怎么做整站排名
  • 做汽車團購的網(wǎng)站建設(shè)北京seo代理公司
  • 電子商務(wù)b2c網(wǎng)站建設(shè)選擇寧波seo優(yōu)化公司
  • 高校學(xué)生紅色網(wǎng)站建設(shè)電子商務(wù)專業(yè)就業(yè)方向
  • 福建建設(shè)科技人才網(wǎng)站網(wǎng)絡(luò)銷售怎么干
  • 網(wǎng)站建設(shè)續(xù)費合同近日網(wǎng)站收錄查詢