首頁

2013年8月7日 星期三

*系統*Linux socket~網絡編程最常使用的函數合集~**

**系統**Linux socket~網絡編程最常使用的函數合集~**

**1.字節序函數#include <netinet.h>uint16_t htons(uint16_t host16bitvalue); uint32_t htonl(uint32_t host32bitvalue); 返回:網絡字節序值uint16_t ntohs(uint16_t net16bitvalue); uint32_t ntohl(uint32_t net32bitvalue); 返回:主機字節序值**

**2.字節操作函數 #include <strings.h>void bzero(void *dest, size_t nbytes); void bcopy(const void *src, void *dest, size_t nbytes); int bcmp(const void *ptr1, const void *ptr2, size_t nbytes); 返回:0—相等,非0—不相等#include <string.h>void *memset(void *dest, int c, size_t len​​); void *memcpy(void *dest, void *src, size_t nbytes); int memcmp(const void *ptr1, const void *ptr2, size_t nbytes); 返回:0—相同,>0或<0—不相同;進行比較操作時,
假定兩個不相等的字節均為無符號字符(unsigned char)**

**3.socket函數  #include <sys/socket.h>int socket(int family, int type, int protocol); 返回:非負描述字—成功,-1—出錯。family指定協議族,有如下取值:· AF_INET IPv4協議· AF_INET6 IPv6協議· AF_LOCAL Unix域協議· AF_ROUTE 路由套接口· AF_KEY 密鑰套接口type指定套接口類型:· SOCK_STREAM 字節流套接口· SOCK_DGRAM 數據報套接口· SOCK_RAW 原始套接口protocol一般設為0,除非用在原始​​套接口上。並非所有family和type的組合都是有效的。AF_LOCAL等於早期的AF_UNIX       **


**4.connect函數#include <sys/socket.h>int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);返回:0—成功,-1—出錯。sockfd是socket函數返回的套接口描述字,servaddr和addrlen是指向---
---服務器的套接口地址結構指針和結構大小。在調用connect之前不必非得調用bind函數。如果是TCP,則connect激發TCP的三路握手過程,在阻塞情況下,
只有在連接建立成功或出錯時該函數才返回,出錯情況:· 沒有收到SYN分節的響應,在規定時間內經過重發仍無效,
則返回ETIMEDOUT;· 如果對SYN分節的響應是RST,表示服務器在指定端口上沒有相應的服務,
返回ECONNREFUSED;· 如果發出SYN在中間路由器上引發一個目的地不可達ICMP錯誤,
​​在規定時間內經過重發仍無效,則返回EHOSTUNREACH或
ENETUNREACH錯誤。注意:如果connect失敗,則套接口將不能再使用,必須關閉,
不能對此套接口再調用函數connect       **


**5.bind函數   #include <sys/socket.h>int bind(int sockfd, const struct sockaddr *maddr, socklen_t addrlen);  返回:0—成功,-1—出錯。進程可以把一個特定的IP地址捆綁到他的套接口上,
但此IP地址必須是主機的一個接口。對於IPv4,通配地址是INADDR_ANY,其值一般為0;使用方法如下:struct sockaddr_in servaddr;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);對於IPv6,方法如下:struct sockaddr_in6 serv;serv.sin6_addr = in6addr_any; (系統分配變量in6addr_any並將其初始化
為常值IN6ADDR_ANY_INIT。)如果讓內核選擇臨時端口,注意的是bind並不返回所選的斷口值,
要得到一個端口,必須使用getsockname函數。bind失敗的常見錯誤是EADDRINUSE(地址已使用) **


**6.listen函數  #include <sys/socket.h>int listen(int sockfd, int backlog);  返回:0—成功,-1—出錯。listen把未連接的套接口轉化為被動套接口,指示內核應接受指向此---
---套接口的連接請求。第二個參數規定了內核為此套接口排隊的最大連接數。參數backlog曾經規定為監聽套接口上的未完成連接隊列和已完成連接--
---隊列總和的最大值,但各個系統的定義方法都不盡相同;歷史上常---
---把backlog置為5,但對於繁忙的服務器是不夠的;backlog的設置---
---沒有一個通用的方法,依情況而定,但不要設為0       **


**7.accept函數   #include <sys/socket.h>int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen);返回:非負描述字—OK,-1—出錯。accept從已完成連接隊列頭返回下一個連接,若已完成連接隊列為空,
則進程睡眠(套接口為阻塞方式時)。參數cliaddr和addrlen返回連接對方的協議地址,其中addrlen是值-結果參數,
調用前addrlen所指的整數值要置為cliaddr所指的套接口結構的長度,
返回時由內核修改。accept成功執行後,返回一個連接套接口描述字。如果對客戶的協議地址沒有興趣,可以把cliaddr和addrlen置為空指針       **


**8.close函數   #include <unistd.h>int close(int sockfd);返回:0—OK,-1—出錯。TCP套接口的close缺省功能是將套接口做上“已關閉”標記,
並立即返回到進程。這個套接口描述字不能再為進程使用,
但TCP將試著發送已排隊待發的任何數據,然後按正常的TCP連接--
--終止序列進行操作。close把描述字的訪問計數減1,當訪問計數仍大於0時,close並不會---
---引發TCP的四分組連接終止序列。若確實要發一個FIN,
可以用函數shutdown        **

*
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

**從綁架瀏覧器--竊取信用卡/金融等相關個人資料的--search.certified-toolbar.<電腦病毒>!!請立即刪除它喔~!(多國)*EN*From kidnapping Browser Your - steal credit / debit and other related personal data - search. Certified-toolbar.!! Delete it immediately Oh!**KR** 납치 브라우저에서 - 훔쳐 신용 / 직불 및 기타 관련 개인 정보 -..!! 검색 인증 - 도구 모음 아 즉시 삭제!**CN**从绑架浏覧器--窃取信用卡/金融等相关个人资料的--search.certified-toolbar.<电脑病毒>!!请立即删除它喔~!**

**從綁架瀏覧器--竊取信用卡/金融等相關個人資料的--
--search.certified-toolbar.<電腦病毒>!!
請立即刪除它喔~!*(多國)**
 *EN*From kidnapping Browser Your - steal credit / debit and other related  
 personal data - search. Certified-toolbar. <Computer Virus>!! 
Delete it immediately Oh!**
*KR** 납치 브라우저에서 - 훔쳐 신용 / 직불 및 기타 관련 개인 정보 -..!! 
검색 인증 - 도구 모음 <Computer Virus> 즉시 삭제 !**
*CN***从绑架浏覧器--窃取信用卡/金融等相关个人资料的 ---
--search.certified-toolbar.<电脑病毒>!!请立即删除它喔~!**

**search.certified-toolbar-認証工具欄病毒**
**search.certified-toolbar-certified Toolbar Virus**
***search.certified - 도구 모음 인증 모음 바이러스**
**search.certified工具栏--认证工具栏病毒**
**
















**如何刪除 search.certified-toolbar?! **Step 1.進入安全模式(含網路功能)
重開機後,按"F8",進入開機選單。接著請用原來的登入帳號登入 **

**How do I delete search.certified-toolbar?! 
Step 1. Enter safe mode (with networking)
After rebooting, press "F8", enter the boot menu. 
Then use the original account login   **

**어떻게 search.certified - 도구 모음에서 삭제합니까?! 
단계 1. 안전 모드 (네트워킹 사용)를 입력 
재부팅 , "F8"을 눌러 부팅 메뉴를 입력합니다.  
그런 다음 원래 계정 로그인을 사용    **

**如何删除search.certified工具栏?
第1步:进入安全模式网路功能
重开机后F8进入开机选单接着原来登入帐号    **

**















**Step 2.下載  Malwarebytes Anti-Malware 
 防惡意軟體 [註] 。並執行它        *
**Step 2. Download Malwarebytes Anti-Malware 
 Anti-Malware [Note]. And execute it       *
**2 단계. 다운로드  Malwarebytes Anti-Malware  
안티 - 멀웨어 안티 - 멀웨어 [참고]. 그리고 실행        *
**第2步:下载   Malwarebytes Anti-Malware  
反恶意软件恶意软体[]执行它         *
**



















**Step 3.重開機,進入一般模式後,確認未被刪除的套件
a.移除 Certified Toolbar程式-----控制台>>新增/刪除程式  **


**Step 3. Reboot into normal mode, confirm that the package has not been deleted 
  a. Remove Programs Certified Toolbar 
Control Panel >> Add / Remove Programs  
**


**단계 3. 정상 모드 재부팅 패키지가 삭제되지 않았는지 확인 
. 프로그램 인증 툴바를 제거    
제어판 >> 프로그램 추가 / 제거     
**


**第3步:重开机进入一般模式确认未被删除套件
一个认证工具栏移除程式
控制台>>新增/删除程式       
**

**


**












**b.移除瀏覽器的第三方程式   
    Microsoft Internet Explorer  : 
工具 >> 管理附加元件
搜尋 Certified Toolbar 元件,並移除它。
    Mozilla Firefox :
工具 >> 附加元件.
搜尋 Certified Toolbar 元件,並移除它。
    Google Chrome :
點選右上方 "自訂及控制你的Google Chrome"
>>工具 >>擴充功能
搜尋 Certified Toolbar 元件,並移除它。

c.移除 Certified Toolbar殘留檔案 
檔案總管 >> 搜尋 CertifiedToolbar 並移除它       **

**b. removing third-party browser
     Microsoft Internet Explorer:
Tools >> Manage Add-ons
Search Certified Toolbar components and remove it.
     Mozilla Firefox:
Tool >> add-ons.
Search Certified Toolbar components and remove it.
     Google Chrome:
Click on the top right "customize and control your Google Chrome"
>> Tools >> Extensions
Search Certified Toolbar components and remove it.

c. removing residual files Certified Toolbar
File Explorer >> Search CertifiedToolbar and remove it          **

**나. 타사 브라우저 제거
     마이크로 소프트 인터넷 익스플로러 :
도구 >> 추가 기능 관리
인증 도구 모음 구성 요소를 검색하고 제거합니다.
     모질라 파이어 폭스 :
도구 >> 기능을 추가합니다.
인증 도구 모음 구성 요소를 검색하고 제거합니다.
     구글 크롬 :
오른쪽 상단을 클릭 "사용자 및 Google 크롬을 제어"
>> 도구 >> 확장
인증 도구 모음 구성 요소를 검색하고 제거합니다.

C. 제거 잔류 파일 인증 모음
탐색기 >> 검색 CertifiedToolbar을 제기하고 제거         **

**(二)移除浏览器的第三方程式
    Microsoft Internet Explorer中
工具>>管理附加元件
搜寻工具栏认证元件并移除它
    Mozilla Firefox浏览器
工具>>附加元件
搜寻工具栏认证元件并移除它
    谷歌Chrome
点选右上方的“控制谷歌Chrome浏览器
>>工具>>扩充功能
搜寻工具栏认证元件并移除它           **

**
  • Español
  • English
  • Français
  • Deutsch
  • Italiano
  • Português
  • 中文
  • Polski
  • Nederlands
  • 日本語
  • Türkçe
  • 한국어/조선말
  • Svenska
  • Norsk
  • עִבְרִית
  • عربي
  • Русский
  • Dansk
  • Suomi
  • Bahasa Indonesia
  • Bahasa Melayu
  • Tiếng Việt
  • Tagalog
  • Română
  • Magyar
  • Ελληνικά
  • Čeština      
  • **


    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&