網絡編程模型及TCP、UDP編程設計


1.Linux網絡模型

Linux網絡編程--->>>socket套接字的編程

2.TCP網絡模型                                                    UDP網絡模型                               

在創建套接字后,服務器與客戶端都得初始化網絡地址

3.網絡編程

服務器端:

//1.1創建socket
    if((sockfd = socket(AF_INET, SOCK_STREAM, 0))<0)  //IPv4,用於TCP通信
{perror("socket error!");exit(-1);} //確保連接穩定性
//1.2綁定地址 /*初始化地址*/ bzero(&server_addr,sizeof(struct sockaddr_in));//清零 server_addr.sin_family = AF_INET;//協議族 server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
//跟隨網絡傳輸 sin_addr中的成員s_addr 任意ip地址 字節序轉換 主機轉換為網絡字節序 server_addr.sin_port = htons(port);//端口,跟隨網絡傳輸 /*綁定地址*/ if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))<0);
//要綁定的地址 地址長度
{perror("bind error!");exit(-1);} //確保連接穩定性
//1.3監聽端口
if(listen(sockfd,5)<0); //客戶機數目
{perror("listen error!");exit(-1);}
//1.4等待連接
while(1)
{ new_fd = accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size);
//client_addr保存客戶端地址 長度的指針
//2.響應客戶端請求  while(1) //接收和發送數據 fd與new_fd之間的調序使用  {
read(~)=recv(~,0) 讀/接收數據
write(~)=send(~,0) 寫/發送數據
//read(new_fd,&cmd,1); //讀取操作類型碼 //write(~~) } close(sockfd); }

客戶端:    實際編程過程中確保穩定連接,配上故障信息

//1.創建socket sockfd = socket(AF_INET, SOCK_STREAM, 0); //IPv4,用於TCP通信 /*2.1 初始化地址*/ memset(&sockaddr1,0,sizeof(sockaddr1));//清零 sockaddr1.sin_family = AF_INET;//協議族 sockaddr1.sin_addr.s_addr = inet_addr(ipaddr);// 跟隨網絡傳輸 sin_addr中的成員s_addr inet_addr:將字符串ip地址轉換為整數型ip地址 sockaddr1.sin_port = htons(port);//端口,跟隨網絡傳輸,字節序轉換 主機轉換為網絡字節序 //2.連接服務器  connect(sockfd,(struct sockaddr *)&sockaddr1,sizeof(sockaddr1)); //3.發送或接收數據 while(1) { command = getchar(); //等待用戶輸入字符  switch(command) {1.發送-2.接收-3.退出-quit()} } //4.關閉連接
    close(sockfd);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM