計算機網路程式設計基礎

2021-09-06 19:34:28 字數 1614 閱讀 8835

判斷主機位元組序的程式:

int main(int argc, char **argv)un;

un.s = 0×0102;

if(sizeof(short) == 2)else

}

位元組序轉換的函式 ntohs/htons:網路到主機用ntohs,主機到網路htons。

ilp\lp\llp:

linux用lp64

對齊係數:每個特定平台的編譯器都有自己的對齊係數。可以通過預編譯命令#progma pack(n),n=1,2,4,8,16來改變這一係數。

packed格式壓縮結構體:

struct__attribute__((packed))
epoll

#include #include #include #include #include #include #include #include #include #include #include #define maxline 4096

#define listenq 20

#define serv_port 6666

int main(int argc, char *argv)

//setnonblocking(connfd);

char *str = inet_ntoa(cliaddr.sin_addr);

// printf("accept a connection from %s\n", str);

ev.data.fd = connfd;

ev.events = epollin | epollet;

printf("當前連線的客戶端 ip: %s port: %d\n", inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port));

epoll_ctl(epfd, epoll_ctl_add, connfd, &ev);

}else if (events[i].events & epollin)

//如果是已經連線的使用者,並且收到資料,那麼進行讀入。

else

printf("readline error\n");

}else if (n == 0)

buf[n] = '\0';

write(sockfd, buf, n);

ev.data.fd = sockfd;

ev.events = epollout | epollet;

//讀完後準備寫

epoll_ctl(epfd, epoll_ctl_mod, sockfd, &ev);

}else if (events[i].events & epollout) // 如果有資料傳送}}

return 0;

}

計算機網路概述 計算機網路基礎

邊緣部分 核心部分 報文交換 報文一般比分組長,報文交換的時延較長。對於廣域網區域網新的理解 不單單從網路覆蓋範圍區分區域網和廣域網,而是在應用技術方面進行區分,應用了區域網技術就是區域網,應用了廣域網技術就是廣域網。區域網一般是自己購買裝置,自己維護,寬頻固定。廣域網 花錢買服務,花錢買頻寬,效能...

計算機網路基礎

計算機網路的基本目的是實現資料通訊和資源共享,計算機網路的主要功能歸結為 1.資源共享2.資料通訊3.提高計算機的可靠性和可用性4.分布式處理 資料通訊 是計算機或其他數字終端裝置之間通過通訊通道進行的資料交換。影響資料通訊的質量的兩個最主要指標 1.資料傳輸速率 2.誤位元速率 表示一段之間內接收...

計算機網路基礎

網路通訊中的阻塞模式和非阻塞模式 主要是用在網路傳輸中 阻塞模式是 每乙個tcp套接字有乙個傳送緩衝區,當應用程式呼叫write操作的時候,核心從應用程序的緩衝區中複製資料到套接字的傳送緩衝區。如果傳送緩衝區無法容納應用程式的所有資料,應用程式將會被掛起,核心將不會從write系統呼叫返回,知道應用...