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

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

用哪個程序做網(wǎng)站收錄好今日熱點新聞頭條排行榜

用哪個程序做網(wǎng)站收錄好,今日熱點新聞頭條排行榜,龍崗?fù)瑯飞鐓^(qū)做網(wǎng)站,pr軟件網(wǎng)絡(luò)編程基礎(chǔ)概念: ip地址和端口號 ip地址是網(wǎng)絡(luò)協(xié)議地址(4字節(jié)32位,形式:xxx.xxx.xxx.xxx xxx在范圍[0, 255]內(nèi)),是IP協(xié)議提供的一種統(tǒng)一的地址格式,每臺主機的ip地址不同,一個…

網(wǎng)絡(luò)編程基礎(chǔ)概念:

ip地址和端口號

ip地址是網(wǎng)絡(luò)協(xié)議地址(4字節(jié)32位,形式:xxx.xxx.xxx.xxx??? xxx在范圍[0, 255]內(nèi)),是IP協(xié)議提供的一種統(tǒng)一的地址格式,每臺主機的ip地址不同,一個主機可以有多個ip地址,一個ip地址只能被一個主機占用。

端口號 (port) 是傳輸層協(xié)議的內(nèi)容。
端口號是一個2字節(jié)16位的整數(shù)。
端口號用來標(biāo)識一個進程, 告訴操作系統(tǒng), 當(dāng)前的這個數(shù)據(jù)要交給哪一個進程來處理。
IP地址 + 端口號能夠標(biāo)識網(wǎng)絡(luò)上的某一臺主機的某一個進程。
一個端口號只能被一個進程占用。

僅使用主機的ip地址就可以實現(xiàn)兩主機中不同的應(yīng)用進程進行網(wǎng)絡(luò)通信嗎?不可以。ip地址只是鎖定要向那個主機發(fā)送信息,要想進行不同主機之間應(yīng)用進程間的網(wǎng)絡(luò)通信就必須要有端口號。比如你的手機相當(dāng)于是一個客戶端主機,手機里有聊天應(yīng)用、短視頻應(yīng)用、游戲等各種應(yīng)用,當(dāng)你進入游戲時你的客戶端會向游戲服務(wù)端發(fā)送請求,此時游戲服務(wù)端必須要有唯一的你的手機中該游戲應(yīng)用的端口號,否則僅憑ip地址游戲服務(wù)端可能會將響應(yīng)發(fā)送給你的手機的其他應(yīng)用。

網(wǎng)絡(luò)層協(xié)議的IP 數(shù)據(jù)報頭部中 , 有兩個 IP 地址 , 分別作源 IP 地址和目的 IP 地址。
傳輸層協(xié)議 (TCP UDP) 的數(shù)據(jù)段中有兩個端口號 , 分別叫做源端口號和目的端口號都是描述 " 數(shù)據(jù)是誰發(fā)的 , 要發(fā)給誰 "。

網(wǎng)絡(luò)字節(jié)序

內(nèi)存中的多字節(jié)數(shù)據(jù)相對于內(nèi)存地址有大端和小端字節(jié)序之分。
TCP/IP協(xié)議規(guī)定,網(wǎng)絡(luò)數(shù)據(jù)流應(yīng)采用大端字節(jié)序,即低地址高字節(jié)進行傳輸。
不管這臺主機是大端機還是小端機,都會按照這個TCP/IP規(guī)定的網(wǎng)絡(luò)字節(jié)序來發(fā)送/接收數(shù)據(jù)。
如果當(dāng)前發(fā)送主機是小端, 就需要先將數(shù)據(jù)轉(zhuǎn)成大端; 否則就忽略, 直接發(fā)送就可以。
將數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序的函數(shù):

套接字(Socket)是一種獨立于協(xié)議的網(wǎng)絡(luò)編程接口。對網(wǎng)絡(luò)中不同主機上的應(yīng)用程序之間進行雙向通信的端點的抽象,一個套接字就是網(wǎng)絡(luò)中進程通信的一端,為應(yīng)用層進程提供利用網(wǎng)絡(luò)協(xié)議交換數(shù)據(jù)的機制。套接字上聯(lián)應(yīng)用進程,下聯(lián)網(wǎng)絡(luò)協(xié)議棧,是應(yīng)用程序通過網(wǎng)絡(luò)協(xié)議進行通信的接口、是應(yīng)用程序與網(wǎng)絡(luò)協(xié)議棧進行交互的接口。網(wǎng)絡(luò)字節(jié)序

創(chuàng)建套接字:

主機信息與套接口之間進行綁定:

?對于服務(wù)端需要我們顯式綁定,而對于客戶端操作系統(tǒng)會自動綁定。

服務(wù)端/客戶端向服務(wù)端/客戶端發(fā)送消息:

?服務(wù)端/客戶端接收信息:

?

可以清空數(shù)據(jù)類型變量的函數(shù)bzero:

sockaddr_in結(jié)構(gòu)體中的in_addr結(jié)構(gòu)體類型源代碼定義:

?結(jié)構(gòu)體sin_addr里包含了主機ip地址:

INADDR_ANY是指定地址為0.0.0.0的地址,這個地址事實上表示不確定地址,或“所有地址”、“任意地址”。

基于UDP 客戶端多線程:

UdpClient.cxx

#include <iostream>
#include <string>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <pthread.h>
#include <unistd.h>// 客戶端基于多線程向服務(wù)端收發(fā)消息#define SIZE 1024
void UsageMethod(const std::string &str)
{std::cout << str << "ser ip   ser port" << std::endl;
}void *SendMessage(void *args)
{serverdata *svdata = static_cast<serverdata *>(args);std::string info; // 給服務(wù)端發(fā)信息所用的緩存區(qū)while (true){std::cout << "Please Enter:";std::getline(std::cin, info);socklen_t len = sizeof(svdata->_server);sendto(svdata->_sockfd, info.c_str(), info.size(), 0, (const sockaddr *)&(svdata->_server), len);}return nullptr;
}void *ReceiveMessage(void *args)
{serverdata *svdata = static_cast<serverdata *>(args);char inbuffer[SIZE] = {0};while (true){struct sockaddr_in svtmp;socklen_t len = sizeof(svtmp);recvfrom(svdata->_sockfd, inbuffer, sizeof(inbuffer) - 1, 0, (sockaddr *)&(svdata->_server), &len);std::cout << "client get message:" << inbuffer << std::endl;}
}struct serverdata
{struct sockaddr_in _server;int _sockfd;
};
int main(int argc, char *argv[]) // 客戶端不需要顯式bind 端口號 和 ip地址
{if (argc != 3){UsageMethod(argv[0]);exit(0);}std::string serverip = argv[1];std::string serverport = argv[2];// 服務(wù)端信息struct sockaddr_in server;server.sin_family = AF_INET;server.sin_addr.s_addr = inet_addr(serverip.c_str());auto port = std::stoi(serverport.c_str()); // 先將string類型的port轉(zhuǎn)換為uint16_t類型以滿足函數(shù)傳參server.sin_port = htons(port);// 創(chuàng)建客戶端的套接字int sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (sockfd < 0){perror("socket error");}serverdata sd;sd._sockfd = sockfd;sd._server = server;// 創(chuàng)建線程pthread_t sender, receiver;pthread_create(&sender, nullptr, SendMessage, &sd); // 先客戶端發(fā)送信息的線程pthread_create(&receiver, nullptr, ReceiveMessage, &sd);//等待線程pthread_join(sender, nullptr);pthread_join(receiver, nullptr);close(sockfd);return 0;
}

http://www.risenshineclean.com/news/23275.html

相關(guān)文章:

  • 凡科建站官網(wǎng)登滄州網(wǎng)站運營公司
  • seo網(wǎng)站優(yōu)化詳解怎么優(yōu)化網(wǎng)站
  • 網(wǎng)站 建設(shè)標(biāo)準(zhǔn)web前端培訓(xùn)費用大概多少
  • 濟南學(xué)生網(wǎng)站建設(shè)求職購物網(wǎng)站頁面設(shè)計
  • 什么網(wǎng)站可以做微官網(wǎng)市場調(diào)研的四個步驟
  • 北京網(wǎng)站制作公司興田德潤實惠軟件開發(fā)培訓(xùn)
  • ps做分享類網(wǎng)站效果圖地推接單平臺app排行榜
  • 營業(yè)執(zhí)照怎么做增項 在網(wǎng)站上操作網(wǎng)站搭建公司
  • 學(xué)網(wǎng)站建設(shè)多久能學(xué)會每天4元代發(fā)廣告
  • 建設(shè)網(wǎng)站程序百度seo關(guān)鍵詞排名優(yōu)化軟件
  • 集群注冊的公司可以做網(wǎng)站備案深圳互聯(lián)網(wǎng)公司排行榜
  • 莘縣網(wǎng)站建設(shè)電話一諾網(wǎng)絡(luò)推廣公司
  • 太原做網(wǎng)站公司運營長沙網(wǎng)絡(luò)推廣小公司
  • win7 iis配置asp.net網(wǎng)站品牌營銷策略分析
  • wordpress做圖片站網(wǎng)站建設(shè)深圳公司
  • 國外好的網(wǎng)站空間最近10條重大新聞
  • 國家官方網(wǎng)站seo關(guān)鍵詞排名優(yōu)化app
  • h5都用什么網(wǎng)站廣州百度seo 網(wǎng)站推廣
  • 怎樣自創(chuàng)網(wǎng)站寧波網(wǎng)站推廣優(yōu)化公司電話
  • 畢業(yè)設(shè)計軟件開發(fā)網(wǎng)站開發(fā)手機做網(wǎng)頁的軟件
  • 網(wǎng)站上的圖片帶店面是怎么做的怎么做市場推廣
  • 建立企業(yè)網(wǎng)站要多少錢足球比賽統(tǒng)計數(shù)據(jù)
  • 公司注冊網(wǎng)站官網(wǎng)電商如何推廣自己的產(chǎn)品
  • 網(wǎng)站開發(fā)的安全性原則優(yōu)化關(guān)鍵詞的作用
  • ubuntu wordpress 安裝成都網(wǎng)站優(yōu)化公司
  • 湖南做網(wǎng)站 要上磐石網(wǎng)絡(luò)seo網(wǎng)站有哪些
  • 自己買主機可以做網(wǎng)站嗎windows優(yōu)化工具
  • 想做一個什么樣的網(wǎng)站衡水seo優(yōu)化
  • 溫州建設(shè)seo搜索引擎優(yōu)化是什么意思
  • 東莞市網(wǎng)站公司海淀區(qū)seo搜索引擎優(yōu)化企業(yè)