socket程式設計(十一)

2021-08-03 00:15:59 字數 2215 閱讀 5431

void handler(int sig)

signal(sigalrm, handler);

alarm(5);

int ret = read(fd, buf, sizeof(buf));

if(ret == -1 &&errno == eintr) else if(ret >=0) else if(ret >=0) while (ret < 0 && errno == eintr);

if (ret == 0)

else if (ret == 1)

ret = 0;

}return ret;

}

/**

* write timeout - 寫超時檢測函式,不含寫函式

* @fd:檔案描述符

* @wait_seconds:等待超時秒數,如果為0不檢測超時

* 成功(未超時) 返回0,失敗返回-1,超時返回-1並且errno = etimedout

*/int write_timeout(int fd, unsigned int wait_seconds)

while (ret < 0 && errno == eintr);

if (ret == 0)

else if (ret == 1)

ret = 0;

}return ret;

}

/**

* accept_timeout - 帶超時的accept

* @fd:套接字

* @addr:輸出引數,返回對方位址

* @wait_seconds:等待超時秒數,如果為0表示正常模式

* 成功(未超時)返回已連線套接字,超時返回-1並且errno = etimedout

*/int accept_timeout(int fd, struct sockaddr_in *addr, unsigned int wait_seconds)

while (ret < 0 && errno == eintr);

if (ret == -1)

return -1;

else if (ret == 0)

}if (addr != null)

ret = accept(fd, (struct sockaddr*)addr, &addrlen);

else

ret = accept(fd, null, null);

/* if (ret == -1)

err_exit("accept");

*/return ret;

}

/**

* active_nonblock - 設定i/o為非阻塞模式

* @fd:檔案描述符

*/void active_nonblock(int fd)

/** * deactive_nonblock - 設定i/o為阻塞模式

* @fd:檔案描述符

*/void deactive_nonblock(int fd)

/** * connect timeout - connect

* @fd:套接字

* @addr:要連線的位址

* @wait_seconds:等待超時秒數,如果為0表示正常模式

* 成功(未超時)返回0,失敗返回-1,超時返回-1並且errno = etimedout

*/int connect_timeout(int fd, struct sockaddr_in *addr, unsigned int wait_seconds)

while (ret < 0 && errno == eintr);

if (ret == 0)

else if (ret < 0)

return -1;

else if (ret == 1)

if (err == 0)

else}}

if (wait_seconds > 0)

return ret;

}

#include #include #include #include #include #include #include #include #include #include #define err_exit(m) \

do \

while(0)

java基礎十一 Socket

一 udp 無連線通訊。特點 1.傳輸效率高 2.安全性低,不保證可到的資料傳輸。開發流程 傳送端 客戶端 1.建立udp服務 datagramsocket ds new datagramsocket 2.封裝資料報 datagrampacket byte buff udp test getbyte...

C大事 第十一講 Socket網路程式設計

網路程式設計 計算機與計算機之間的通訊。網域名稱 ip位址 dns伺服器。手機聯絡人 號碼 乙個計算機可以同時執行多個網路程式,引入了埠port 與就是乙個計算機上可以併發執行多個網路程式,而不會再互相之間產生干擾 c s b s結構。p2p程式 即時客戶端,優勢伺服器端。tcp傳輸控制協議 udp...

socket程式設計

一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...