Socket一些函式相關的返回值

2021-07-17 02:48:37 字數 1575 閱讀 3498

若無錯誤發生,recv()返回讀入的位元組數。如果連線已中止,返回0。否則的話,返回socket_error錯誤,應用程式可通過wsagetlasterror()獲取相應錯誤**。

如無錯誤發生,listen()返回0。否則的話,返回socket_error錯誤,應用程式可通過wsagetlasterror()獲取相應錯誤**。

如無錯誤發生,則bind()返回0。否則的話,將返回socket_error,應用程式可通過wsagetlasterror()獲取相應錯誤**

若無錯誤發生,send()返回所傳送資料的總數(請注意這個數字可能小於len中所規定的大小)。否則的話,返回socket_error錯誤

返回值:

select()呼叫返回處於就緒狀態並且已經包含在fd_set結構中的描述字總數;如果超時則返回0;否則的話,返回socket_error錯誤,應用程式可通過wsagetlasterror()獲取相應錯誤**。

錯誤**:

wsanotinitialised:在使用此api之前應首先成功地呼叫wsastartup()。

wsaenetdown:windows套介面實現檢測到網路子系統失效。

wsaeinval:超時時間值非法。

wsaeintr:通過乙個wsacancelblockingcall()來取消乙個(阻塞的)呼叫。

wsaeinprogress:乙個阻塞的windows套介面呼叫正在執行中。

wsaenotsock:描述字集合中包含有非套介面的元素。

若無錯誤發生,則connect()返回0。否則的話,返回socket_error錯誤,應用程式可通過wsagetlasterror()獲取相應錯誤**。對阻塞套介面而言,若返回值為socket_error則應用程式呼叫wsagetlsaterror()。如果它指出錯誤**為wsaewouldblock,則您的應用程式可以:

1.用select(),通過檢查套介面是否可寫,來確定連線請求是否完成。或者,

2.如果您的應用程式使用基於訊息的wsaasynselect()來表示對連線事件的興趣,則當連線操作完成後,您會收到乙個fd_connect訊息。

錯誤**:

wsaenotinitialised:在使用此api之前應首先成功地呼叫wsastartup()。

wsaenetdown:windows套介面實現檢測到網路子系統失效。

wsaeintr:通過乙個wsacancelblockingcall()來取消乙個(阻塞的)呼叫。

wsaeinprogress:乙個阻塞的windows套介面呼叫正在執行中。

wsaeconnrefused:連線嘗試被強制拒絕。

wsaefault:namelen引數不正確。

wsaeisconn:套介面早已連線。

wsaemfile:無多餘檔案描述字。

wsaenetunreach:當前無法從本主機訪問網路。

wsaenobufs:無可用緩衝區。套介面未被連線。

wsaenotsock:描述字不是乙個套介面。

wsaetimeout:超時時間到。

wsaewouldblock:套介面設定為非阻塞方式且連線不能立即建立。可用select()呼叫對套介面寫,因為select()時會進行連線。

一些執行緒相關的函式

object類自帶函式synchronized obj 用wait 寫出生產者和消費者模式的乙個小例子 生產者執行緒 synchronized queue catch exception e 沒滿,生成元素放入佇列 queue.add element queue.notifyall 喚醒所有其他正在...

注入相關的一些函式

查詢視窗控制代碼 lpclassname 引數可以為 null hwnd findwindowa lpcstr lpclassname,lpcstr lpwindowname hwnd findwindoww lpcwstr lpclassname,lpcwstr lpwindowname 返回程序...

socket 的一些引數

sock raw 注意一定要在root下使用 原始套接字程式設計可以接收到本機網絡卡上的資料幀或者資料報,對與監聽網路的流量和分析是很有作用的.一共可以有3種方式建立這種socket 1.socket af inet,sock raw,ipproto tcp ipproto udp ipproto ...