1. 程式人生 > >Linux下connect()函式的錯誤程式碼對應含義

Linux下connect()函式的錯誤程式碼對應含義

下面把Linux下connect()函數出錯返回的錯誤程式碼對應的含義摘錄出來,供大家查閱。(注意,Linux下網路程式設計和Windows下網路程式設計,對於connect()函式返回的錯誤程式碼是不同的,在windows下的connect()函式返回錯誤程式碼可以百度connect()函式,在百度百科裡找到,下面也摘錄出來) Linux下: EBADF:引數socket未指定一個合法的描述符 ENOTSOCK  引數socket未指定一個套接字描述符 EAFNOSUPPORT  遠端端點指定的地址族不能與這種型別的套接字一起使用 EADDRNOTAVAIL:指定的地址不可用 EISCONN:套接字已被連線 ETIMEDOUT:(只用於TCP)協議因未成功建立一個連線而超時 ECONNREFUSED:(只用於TCP)連線被遠端機器拒絕 ENETUNREACH:(只用於TCP)網路當前不可到達 EADDRINUSE:指定的地址正在使用 EINPROGRESS:(只用於TCP)套接字是非阻塞的,且一個連線嘗試將被阻塞 EALREADY:(只用於TCP)套接字是非阻塞的,且呼叫將等待前一個連線嘗試完成 windows下(摘自百度百科): WSAENOTINITIALISED:在使用此API之前應首先成功地呼叫WSAStartup()。 WSAENETDOWN:WINDOWS套介面實現檢測到網路子系統失效。 WSAEADDRINUSE:所指的地址已在使用中。 WSAEINTR:通過一個WSACancelBlockingCall()來取消一個(阻塞的)呼叫。 WSAEINPROGRESS:一個阻塞的WINDOWS套介面呼叫正在執行中。 WSAEADDRNOTAVAIL:在本地機器上找不到所指的地址。 WSAENOTSUPPORT:所指族中地址無法與本套介面一起使用。 WSAECONNREFUSED:連線嘗試被強制拒絕。 WSAEDESTADDREQ:需要目的地址。 WSAEFAULT:namelen引數不正確。 WSAEINVAL:套介面沒有準備好與一地址捆綁。 WSAEISCONN:套介面
早已連線。 WSAEMFILE:無多餘檔案描述字。 WSAENETUNREACH:當前無法從本主機訪問網路。 WSAENOBUFS:無可用緩衝區。套介面未被連線。 WSAENOTSOCK:描述字不是一個套介面。 WSAETIMEOUT:超時時間到。 WSAEWOULDBLOCK:套介面設定為非阻塞方式且連線不能立即建立。可用select()呼叫對套介面寫,因為select()時會進行連線。

相關推薦

Linuxconnect()函式錯誤程式碼對應含義

下面把Linux下connect()函數出錯返回的錯誤程式碼對應的含義摘錄出來,供大家查閱。(注意,Linux下網路程式設計和Windows下網路程式設計,對於connect()函式返回的錯誤程式碼是不同的,在windows下的connect()函式返回錯誤程式碼可以百度c

linuxsystem函式錯誤返回-1 錯誤原因NO child processes

呼叫system函式執行一個shell命令,返回-1,錯誤提示no child processes 但system可以執行成功 原因是呼叫system之前有放置忽略SIGCHLD的語句 signal(SIGCHLD, SIG_IGN); 如果SIGCHLD訊號行為被

linux setsockopt(),connect()相關錯誤程式碼的值及使用

功能描述:        獲取或者設定與某個套接字關聯的選 項。選項可能存在於多層協議中,它們總會出現在最上面的套接字層。當操作套接字選項時,選項位於的層和選項的名稱必須給出。為了操作套接字層的選項,應該 將層的值指定為SOL_SOCKET。為了操作其它層的選項,控制選項的合適協議號必須給出。例如,為了表示一

linux封裝函式庫——動態庫.so和靜態庫.a(程式碼實現及連結方式)

在linux環境下的連結庫分為靜態連結庫(.a庫)和動態連結庫(.so庫),其作用是把C程式編譯好做成一種可執行連結檔案,主程式檔案呼叫這些程式的函式介面是可以使用a庫或so庫,在主程式中只需要include含有庫中提供的函式介面宣告的標頭檔案即可。所以學會如何

Linuxsend函式 Broken pipe錯誤的解決方法

在linux下寫socket的程式的時候,如果嘗試send到一個disconnected socket上,就會讓底層丟擲一個SIGPIPE訊號。 client端通過 pipe 傳送資訊到server端後,就關閉client端, 這時server端,返回資訊給 cli

Linux 各文件夾的含義

安裝 默認 系統管理 臨時文件 存儲 linu bsp 端口 啟動 /bin 該目錄中存放Linux的常用命令。/boot 該目錄默認下存放的是Linux的啟動文件和內核。/cdrom 該目錄在剛安裝系統時是空的,你可以將光驅文件系統掛在這個目錄下。/dev 該目錄包含了L

Linux各文件夾的含義及解釋

linux目錄解釋大全初學Linux,為了更好的記憶以及搞清楚各文件的含義。1、bin binary(二進制)的縮寫; 含義:此文件下存放的都是二進制可以執行命令文件。2、sbin system binary是系統管理員專用的二進制代碼存放目錄,主要用於系統管理3

Linux的檔案結構,及對應資料夾的作用

/bin 二進位制可執行命令  /dev 裝置特殊檔案  /etc 系統管理和配置檔案  /etc/rc.d 啟動的配置檔案和指令碼  /home 使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以用~user表示  /li

c語言實現linux高危函式system (簡易V1.0版本)

system這個函式真的是要慎用,一不小心就會留下漏洞。 下面是用c語言簡易的實現了一下system函式 #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<err

Linuxgetopt()函式的使用

Linux下getopt()函式的簡單使用 步入正題: 我們的主角----getopt()函式。 英雄不問出處,getopt()函式的出處就是unistd.h標頭檔案(哈哈),寫程式碼的時候千萬不要忘記把他老人家include上。   再來看一下這傢伙的原型(不是六耳獼

Linuxtime函式

Linux下time函式都在time.h標頭檔案中。 1、標頭檔案 和時間有關的標頭檔案有以下幾個: time.h sys/time.h sys/times.h sys/timeb.h sys/timex.h time.h是C標準庫的標頭檔案,其餘sys開頭的都是Linux系統自己的標頭檔

對於linuxsystem 函式的深度理解 整理

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linuxgets函式警告

由於Linux下的gcc編譯器不支援gets函式,程式編譯過後會出現一個警告,即:“warning: the `gets' function is dangerous and should not be used.”   此時,可以用fgets函式代替,函式在標頭檔案stdio.h中,

對於linuxsystem()函式的深度理解(整理)

對於linux下system()函式的深度理解(整理)   (2013-02-07 08:58:54) 轉載▼ 標籤:  system()   popen()   sys

linuxsystem函式詳解

一、system函式的簡單介紹 標頭檔案 #include <stdlib.h> 函式定義 int system(const char * string); 函式說明 system()會呼叫fork()產生子程序,由子程序來呼叫/bin/sh-

Linux系統函式

Linux下系統函式 rand()函式 獲取02147483647(0RAND_MAX)之間的隨機數。真隨機需要srand()設定種子。一般用時間作為srand()的引數 #include<unistd.h> int rand(void) void srand(uns

Linux執行jmeter錯誤整理

1.The program 'rpm' is currently not installed. You can install it by typing: 解決方法:環境變數配置有誤; 2. 開啟jtl 檔案在檢視結果樹時發現 request 出現 no data to

Linuxselect函式檔案描述符0狀態的問題

當然是在有輸入或者輸出時檔案描述符的讀寫狀態改變咯,比如標準輸入的檔案描述符是0,如果用select來等待0號檔案描述符,那麼當在鍵盤上敲字元時開始,就是檔案描述符的讀寫狀態改變之時,這時select函式就會返回;對於套接字描述符來說也是這樣,用select來等待一個伺服器描

linuxPHP編譯安裝程式碼踩過的坑解決

坑1:編譯之前需要:需要安裝gcc 和 autoconfig,要不然安裝編譯不成功的!(如果系統有就不需要安裝了!) 坑2:解壓出來的PHP檔案裡的php.ini xxx 複製到在編譯PHP目錄下etc下。 坑3:如果php.ini 不生效,用命令  php -i | g

linux時間函式

void get_local_time(long sec, char *plocaltime, int len) { struct tm t1 = {0}; localtime_r(&sec, &t1); snprintf(plocaltime, len, "%04d-%02