判斷主機位元組序的程式:
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系統呼叫返回,知道應用...