tcp select模式程式設計

2021-08-18 16:37:01 字數 1677 閱讀 5394

[cpp]view plain

copy

#include 

#include 

#include 

#include 

#include 

#include "errwrap.h"

#define maxline 80

#define serverport 8000

intmain(

intargc, 

char

*argv)  

}  // 達到select能監控的檔案個數上限1024 

if(i == fd_setsize)   

fd_set(confd, &allset); //將新的新的檔案描述符新增到監控訊號集裡

if(confd > maxfd)  

maxfd = confd; //更新最大的檔案描述符

if(i > maxi)  

maxi = i; // 更新client最大下標

if(--nret == 0)  

continue

; /* 如果沒有更多的就緒檔案描述符繼續回到上面select阻塞監聽,負責處理未

處理完的就緒檔案描述符*/

}  for

(i = 0; i <= maxi; i++)   

else

if(--nret == 0)

//處理的那個fd不是最後乙個

break

;  }  

}  }  

close(listenfd);  

return

0;  

}  

[cpp]view plain

copy

#include 

#include 

#include 

#include 

#include "errwrap.h"

#define maxline 80

#define serv_port 8000

intmain(

intargc, 

char

*argv)  

struct

sockaddr_in servaddr;  

char

buf[maxline];  

intsockfd, n;  

sockfd = socket(af_inet, sock_stream, 0);  

bzero(&servaddr, sizeof

(servaddr));  

servaddr.sin_family = af_inet;  

inet_pton(af_inet, argv[1], &servaddr.sin_addr);  

servaddr.sin_port = htons(serv_port);  

connect(sockfd, (struct

sockaddr *)&servaddr, 

sizeof

(servaddr));  

while

(fgets(buf, maxline, stdin) != null)   

close(sockfd);  

return

0;  

}  

Select模型及tcp select模型

參考 一 套接字模式 套接字模式簡單的決定了操作套接字時,winsock函式是如何運轉的。winsock以兩種模式執行i o操作 阻塞和非阻塞。在阻塞模式下,執行i 0的winsock呼叫 如send和recv 一直到操作完成才返回。非阻塞模式下,winsock函式會立刻返回 1.阻塞模式 套接字建...

程式設計模式

程式設計模式今天主要講三種模式,分別為 含義 乙個類對應乙個物件。分類 懶漢模式 當第一次被呼叫的時候類才被建立。餓漢模式 在類被第一次載入的時候,物件就被建立了。懶漢設計模式主要的步驟為 1.構造器被私有 不能new了 2.私有的,靜態的引用 3.提供公共的,靜態的訪問方式 public clas...

使用tcp select實現客戶端與客戶端的通訊

使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...