socket程式設計基礎4

2021-06-22 00:44:48 字數 615 閱讀 3979

套接字i/o超時設定的方法:1、alarm(有很多外在因素,不怎麼用)

sigalrm

void   handler(int   sig)

return   0;

signale(sigalrm,handler);

alarm(5);//設定鬧鐘為5秒

int   ret=read(fd,buf,sizeof(buf));//如果沒有讀到資料,則將返回sigalrm錯誤,用新號函式進行處理

if(ret==-1&&errno==eintr)

errno=etimedout

else if(ret >=0)//讀到資料  鬧鐘取消

alarm(0);

2、設定套接字選項(也不怎麼用,因為有些tcp/ip實現不支援這兩個套接字選項)

so_sndtimeo

so_recvtimeo

setsockopt(sock,sol_socket,so_recvtimeo,5);

setsockopt(sock,sol_socket,so_recvtimeo,5);//超時錯誤**為ewouldblock

3、用select實現超時設定

讀超時、寫超時、接收連線的超時、連線的超時

socket程式設計基礎

對於socket在這裡我不想究其歷史,我只想說其時它是一種程序通訊的方式,簡言之就是呼叫這個網路庫的一些api函式就能實現分布在不同主機的相關程序之間的資料交換.socket中首先我們要理解如下幾個定義概念 二是埠號 用來標識本地通訊程序,方便os提交資料.就是說程序指定了對方程序的網路ip,但這個...

socket程式設計基礎

對於socket在這裡我不想究其歷史,我只想說其時它是一種程序通訊的方式,簡言之就是呼叫這個網路庫的一些api函式就能實現分布在不同主機的相關程序之間的資料交換.socket中首先我們要理解如下幾個定義概念 二是埠號 用來標識本地通訊程序,方便os提交資料.就是說程序指定了對方程序的網路ip,但這個...

Go基礎程式設計 Socket程式設計

socket起源於unix,而unix基本哲學之一就是 一切皆檔案 都可以用 開啟open 讀寫write read 關閉close 模式來操作。socket就是該模式的乙個實現,網路的socket資料傳輸是一種特殊的i o,socket也是一種檔案描述符。socket也具有乙個類似於開啟檔案的函式...