⑴ 在windows下用C語言如何實現socket網路編程,需要用到哪些頭文件或者庫
需要用到的頭文件包含:
#include <winsock2.h>
#include <windows.h>
與Linux環境下socket編程相比,windows環境多了一個步驟:啟動或者初始化winsock庫
Winsock,一種標准API,一種網路編程介面,用於兩個或多個應用程序(或進程)之間通過網路進行數據通信。具有兩個版本:
Winsock 1:
Windows CE平台支持。
頭文件:WinSock.h
庫:wsock32.lib
Winsock 2:
部分平台如Windows CE貌似不支持。通過前綴WSA可以區別於Winsock 1版本。個別函數如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都屬於Winsock 1.1規范的函數;
頭文件:WinSock2.h
庫:ws2_32.lib
mswsock.h用於編程擴展,使用時必須鏈接mswsock.dll
(1)window網路編程擴展閱讀
winsock庫的載入與卸載:
載入:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
載入成功,返回值為0。
WORD wVersionRequested:載入的winsock版本,使用宏MAKEWORD(x, y),x表示高位元組,y表示低位元組。然而使用時MAKEWORD(2, 2)。高位元組與低位元組相同~~
LPWSADATA lpWSAData:WSADATA結構的指針,傳入參數後,系統幫助我們填充版本信息。有興趣的可以看看結構體內容,不過基本用不著。
卸載:int WSACleanup(void);比起載入,卸載的函數真是輕松愉快。
⑵ Windows下C語言網路編程快速入門。
C語言的學習,一般的方式是,先學C,然後是C++,最好還要有匯編語言和微機原理基礎,然後才是Visual
C++。這樣的方式,對學習者來說,要花費很多時間和耐力。而在學校教學中,也沒有時間深入學習Windows編程的實用技術了。其實,具有了C語言基礎後,再有一些基本的C++類的概念,就可以直接學習Windows
C編程了。一、走近Windows
C語言很多語言都把顯示一個「Hello,World!」做為第一個入門程序,
C語言的第一個程序是這樣的:#include<stdio.h>
main()
{
printf(「Hello,World!」);
}如果把main函數寫成帶參數的main函數,應該是:#include<stdio.h>
main(int
arge,char
*argv[])
{
printf(「Hello,World!」);
}Windows
C的第一個程序和這個程序在形式和原理上都是一致的,只是有兩點不同:1.
主函數接收的形參不只是命令行中的字元串的個數和字元串的首地址。2.
C語言的很多函數在Windows
C中都可以繼續使用,但象printf()屏幕顯示等函數就不能繼續使用了。因為Windows是多任務操作系統,屏幕已不再為某一個應用程序所獨有,Windows
C應用程序要顯示字元串,需要使用Windows提供的API函數,開自己的窗口下面是一個最簡單的,顯示「Hello,World!」的Windows
C程序:#include<windows.h>
APIENTRY
WinMain(HINSTANCE
hInstance,HINSTANCE
hPrevInstance,
LPSTR
lpCmdLine,int
nCmdShow)
{
MessageBox(NULL,"Hello,World!","第一個Windows
C程序",MB_OK|MB_ICONASTERISK);
}主函數的形參有四個:1)
Hinstance:接收程序運行時當前實例的句柄;2)
HprivInstance:前一個實例的句柄;3)
LpCmdLine:程序命令行指針;4)
NcmdShow:一個用來指定窗口顯示方式的整數。這幾個參數的使用我們會在深入的學習中介紹的。顯示Hello,Word!字元串,我們使用了一個MessageBox函數,這個函數會在屏幕上顯示一個對話框,它的原型是:int
MessageBox(HWND
hWnd,LPCTSTR
lpText,LPCTSTR
lpCaption,UNIT
uType)四個參數分別是:1)
HWnd:父窗口的句柄;2)
LpText:要顯示字元串的指針;3)
LpCaption:對話框標題字元串的指針;4)
UType:顯示在對話框上的小圖標的類型。使用這個函數要包含windows.h頭文件。調試一下,怎麼樣?窗口上彈出了一個「第一個Windows
C程序」對話框,上面有一行字:「Hello,World!」。世界真的很美好啊!!
你連答案也發啦,暈!