Posted on 2012-05-20 10:17
C小加 阅读(1815)
评论(2) 编辑 收藏 引用 所属分类:
网络编程
一、Socket简单介绍
Socket的中文翻译是套接字,它是TCP/IP网络环境下应用程序与底层通信驱动程序之间运行的开发接口,它可以将应用程序与具体的TCP/IP隔离开来,使得应用程序不需要了解TCP/IP的具体细节,就能够实现数据传输。
关于Socket需要了解的还有很多,我将在随后的章节里陆续写上。
二、Socket应用程序框架
这里先声明一下,我用的是32位win7系统,vs2010编译器。
首先新建一个没有预编译头的Win32控制台应用程序。
应用程序框架如下:
#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实现网络通信
//![](http://www.cppblog.com/Images/dot.gif)
![](http://www.cppblog.com/Images/dot.gif)
//最后应该做的清理工作
if(WSACleanup()==SOCKET_ERROR)
//注释4
printf("WSACleanup出错\n");
system("pause");
return 0;
}
注释1:
我们在vs中一般使用Winsock2实现网络通信功能,需要引进头文件winsock2.h和库文件ws2_32.lib。
注释2:
WSADATA结构体中主要包含了系统所支持的Winsock版本信息。
注释3“
WSAStartup()函数用于初始化Windows Sockets,并返回WSADATA结构体。只有调用WSAStartup()函数后,应用程序才能调用其他Windows Sockets API函数,实现网络通信。
第一个参数是版本号,第二个参数用于接收版本信息。
如果函数执行成功则会返回0。
注释4:
最后应该做的一些清理工作。