❶ 在windows下,如何用純C語言實現socket網路編程
mfc只是對socket進行了一些封裝,大部分人做網路編程都是用的原始的socket,比如如下介面都可以在c下進行調用
1.socket()
2.bind()
3.connect()
4.listen()
5.accept()
6.send() 和recv()
7.sendto() 和recvfrom()
8.close() 和shutdown()
9.getpeername()
10.gethostname()
這些介面是在Winsock2.h中定義的不是在mfc中定義的,你只需要包含Winsock2.h頭文件和Ws2_32.lib庫就可以了。
❷ 什麼是winsocket編程介面
Windows下網路編程的規范-Windows
Sockets是Windows下得到廣泛應用的、開放的、支持多種協議的網路編程介面。從1991年的1.0版到1995年的2.0.8版,經過不斷完善並在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成為Windows網路編程的事實上的標准。
Windows
Sockets規范以U.C.
Berkeley大學BSD
UNIX中流行的Socket介面為範例定義了一套Micosoft
Windows下網路編程介面。它不僅包含了人們所熟悉的Berkeley
Socket風格的庫函數;也包含了一組針對Windows的擴展庫函數,以使程序員能充分地利用Windows消息驅動機制進行編程。Windows
Sockets規範本意在於提供給應用程序開發者一套簡單的API,並讓各家網路軟體供應商共同遵守。此外,在一個特定版本Windows的基礎上,Windows
Sockets也定義了一個二進制介面(ABI),以此來保證應用Windows
Sockets
API的應用程序能夠在任何網路軟體供應商的符合Windows
Sockets協議的實現上工作。因此這份規范定義了應用程序開發者能夠使用,並且網路軟體供應商能夠實現的一套庫函數調用和相關語義。遵守這套Windows
Sockets規范的網路軟體,我們稱之為Windows
Sockets兼容的,而Windows
Sockets兼容實現的提供者,我們稱之為Windows
Sockets提供者。一個網路軟體供應商必須百分之百地實現Windows
Sockets規范才能做到現Windows
Sockets兼容。任何能夠與Windows
Sockets兼容實現協同工作的應用程序就被認為是具有Windows
Sockets介面。我們稱這種應用程序為Windows
Sockets應用程序。Windows
Sockets規范定義並記錄了如何使用API與Internet協議族(IPS,通常我們指的是TCP/IP)連接,尤其要指出的是所有的Windows
Sockets實現都支持流套介面和數據報套介面.應用程序調用Windows
Sockets的API實現相互之間的通訊。Windows
Sockets又利用下層的網路通訊協議功能和操作系統調用實現實際的通訊工作。它們之間的關系如圖
通信的基礎是套介面(Socket),一個套介面是通訊的一端。在這一端上你可以找到與其對應的一個名字。一個正在被使用的套介面都有它的類型和與其相關的進程。套介面存在於通訊域中。通訊域是為了處理一般的線程通過套介面通訊而引進的一種抽象概念。套介面通常和同一個域中的套介面交換數據(數據交換也可能穿越域的界限,但這時一定要執行某種解釋程序)。Windows
Sockets規范支持單一的通訊域,即Internet域。各種進程使用這個域互相之間用Internet協議族來進行通訊(Windows
Sockets
1.1以上的版本支持其他的域,例如Windows
Sockets
2)。套介面可以根據通訊性質分類;這種性質對於用戶是可見的。應用程序一般僅在同一類的套介面間通訊。不過只要底層的通訊協議允許,不同類型的套介面間也照樣可以通訊。用戶目前可以使用兩種套介面,即流套介面和數據報套介面。流套介面提供了雙向的,有序的,無重復並且無記錄邊界的數據流服務。數據報套介面支持雙向的數據流,但並不保證是可靠,有序,無重復的。也就是說,一個從數據報套介面接收信息的進程有可能發現信息重復了,或者和發出時的順序不同。數據報套介面的一個重要特點是它保留了記錄邊界。對於這一特點,數據報套介面採用了與現在許多包交換網路(例如乙太網)非常類似的模型。
一個在建立分布式應用時最常用的範例便是客戶機/伺服器模型。在這種方案中客戶應用程序向伺服器程序請求服務。這種方式隱含了在建立客戶機/伺服器間通訊時的非對稱性。客戶機/伺服器模型工作時要求有一套為客戶機和伺服器所共識的慣例來保證服務能夠被提供(或被接受)。這一套慣例包含了一套協議。它必須在通訊的兩頭都被實現。根據不同的實際情況,協議可能是對稱的或是非對稱的。在對稱的協議中,每一方都有可能扮演主從角色;在非對稱協議中,一方被不可改變地
❸ Windows網路編程中 UDP通信問題
在VC中進行WINSOCK的API編程開發的時候,需要在項目中使用下面三個文件,否則會出現編譯錯誤。
1.WINSOCK.H: 這是WINSOCK API的頭文件,需要包含在項目中。
2.WSOCK32.LIB: WINSOCK API連接庫文件。在使用中,一定要把它作為項目的非預設的連接庫包含到項目文件中去。
3.WINSOCK.DLL: WINSOCK的動態連接庫,位於WINDOWS的安裝目錄下。