c++ winsock 基本操作---创建
2008-02-03 11:19
363 查看
//vc++6.0
//sockettest.cpp
//需添加ws2_32.lib
//project->settings->link->object/liibrary Modules 文本框中添加ws2_32.lib
#include <stdio.h>
#include <iostream.h>
#include <winsock.h>
void main(void)
{
SOCKET skSocket;
sockaddr_in saServerAddress;
int iPort=6000;
int iStatus;
WSADATA wsaData;
WORD wVersionRequested;
skSocket = INVALID_SOCKET; //初始化套接字句柄
wVersionRequested=MAKEWORD(2,0);
iStatus=WSAStartup(wVersionRequested,&wsaData); //开启winsock
skSocket=socket(AF_INET,SOCK_STREAM,0); //创建套接字
if(skSocket==INVALID_SOCKET) //检查套接字是否创建成功
{
cout<<"**ERROR** Could Not Create Socket"<<endl;
WSACleanup();
exit(1);
}
cout<<"<--SOCKET CREATED-->"<<endl;
memset(&saServerAddress,0,sizeof(sockaddr_in));
saServerAddress.sin_family=AF_INET; //初始化套接字地址结构
saServerAddress.sin_addr.s_addr=htonl(INADDR_ANY);
saServerAddress.sin_port=htons(iPort);
//尝试绑定
if(bind(skSocket,(sockaddr*)&saServerAddress,sizeof(sockaddr))==SOCKET_ERROR)
{
cout<<"**ERROR** Could Not Bind"<<endl;
WSACleanup();
exit(1);
}
closesocket(skSocket); //关闭套接字
WSACleanup(); //清除winsock
cout<<"<--SOCKET BOUND-->"<<endl;
}
//sockettest.cpp
//需添加ws2_32.lib
//project->settings->link->object/liibrary Modules 文本框中添加ws2_32.lib
#include <stdio.h>
#include <iostream.h>
#include <winsock.h>
void main(void)
{
SOCKET skSocket;
sockaddr_in saServerAddress;
int iPort=6000;
int iStatus;
WSADATA wsaData;
WORD wVersionRequested;
skSocket = INVALID_SOCKET; //初始化套接字句柄
wVersionRequested=MAKEWORD(2,0);
iStatus=WSAStartup(wVersionRequested,&wsaData); //开启winsock
skSocket=socket(AF_INET,SOCK_STREAM,0); //创建套接字
if(skSocket==INVALID_SOCKET) //检查套接字是否创建成功
{
cout<<"**ERROR** Could Not Create Socket"<<endl;
WSACleanup();
exit(1);
}
cout<<"<--SOCKET CREATED-->"<<endl;
memset(&saServerAddress,0,sizeof(sockaddr_in));
saServerAddress.sin_family=AF_INET; //初始化套接字地址结构
saServerAddress.sin_addr.s_addr=htonl(INADDR_ANY);
saServerAddress.sin_port=htons(iPort);
//尝试绑定
if(bind(skSocket,(sockaddr*)&saServerAddress,sizeof(sockaddr))==SOCKET_ERROR)
{
cout<<"**ERROR** Could Not Bind"<<endl;
WSACleanup();
exit(1);
}
closesocket(skSocket); //关闭套接字
WSACleanup(); //清除winsock
cout<<"<--SOCKET BOUND-->"<<endl;
}
相关文章推荐
- 单链表的创建、打印、测试长度(基本操作)-C++
- C++递归创建、非递归遍历二叉树的基本操作
- c++之链表篇1:单向链表的创建,打印,删除,插入,销毁等基本操作
- C++实现矩阵类型的基本操作:创建矩阵(M x N)、释放内存、获取某一元素的值、修改某一元素的值、乘法操作
- C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
- C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
- 【数据库】创建表以及一些基本的表操作
- 线程的基本操作——Java线程的创建
- c++关于线性表的基本操作
- c/c++文件的基本操作
- 线程的创建、终止、等待基本操作
- 静态链表的创建以及基本操作
- Oracle - 基本操作之查询与创建操作
- HBase的Java接口基本操作:创建表插入查询删除
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- MySQL数据库——‘多表’的基本操作(更新、删除、创建写入)
- C++数据结构 链表的基本操作
- 文件基本操作之创建和删除文件