Posted on 2012-05-20 10:17
C小加 閱讀(1884)
評(píng)論(2) 編輯 收藏 引用 所屬分類:
網(wǎng)絡(luò)編程
一、Socket簡(jiǎn)單介紹
Socket的中文翻譯是套接字,它是TCP/IP網(wǎng)絡(luò)環(huán)境下應(yīng)用程序與底層通信驅(qū)動(dòng)程序之間運(yùn)行的開發(fā)接口,它可以將應(yīng)用程序與具體的TCP/IP隔離開來,使得應(yīng)用程序不需要了解TCP/IP的具體細(xì)節(jié),就能夠?qū)崿F(xiàn)數(shù)據(jù)傳輸。
關(guān)于Socket需要了解的還有很多,我將在隨后的章節(jié)里陸續(xù)寫上。
二、Socket應(yīng)用程序框架
這里先聲明一下,我用的是32位win7系統(tǒng),vs2010編譯器。
首先新建一個(gè)沒有預(yù)編譯頭的Win32控制臺(tái)應(yīng)用程序。
應(yīng)用程序框架如下:
#include<iostream>
#include<winsock2.h>
//注釋1
#pragma comment (lib,"ws2_32.lib")
//注釋1
#include<stdlib.h>
using namespace std;
int main()
{
WSADATA wsadata;
//注釋2
if( WSAStartup( MAKEWORD(2,2),&wsadata )!=0 )
//注釋3
{
printf("WSAStartup無法初始化!\n");
return 0;
}
//使用Winsock實(shí)現(xiàn)網(wǎng)絡(luò)通信
//

//最后應(yīng)該做的清理工作
if(WSACleanup()==SOCKET_ERROR)
//注釋4
printf("WSACleanup出錯(cuò)\n");
system("pause");
return 0;
}
注釋1:
我們?cè)趘s中一般使用Winsock2實(shí)現(xiàn)網(wǎng)絡(luò)通信功能,需要引進(jìn)頭文件winsock2.h和庫(kù)文件ws2_32.lib。
注釋2:
WSADATA結(jié)構(gòu)體中主要包含了系統(tǒng)所支持的Winsock版本信息。
注釋3“
WSAStartup()函數(shù)用于初始化Windows Sockets,并返回WSADATA結(jié)構(gòu)體。只有調(diào)用WSAStartup()函數(shù)后,應(yīng)用程序才能調(diào)用其他Windows Sockets API函數(shù),實(shí)現(xiàn)網(wǎng)絡(luò)通信。
第一個(gè)參數(shù)是版本號(hào),第二個(gè)參數(shù)用于接收版本信息。
如果函數(shù)執(zhí)行成功則會(huì)返回0。
注釋4:
最后應(yīng)該做的一些清理工作。