winscoket中的基本函数

1.WSAstartup(连接WinSocket库) 原型如下:

    Int WSAStartup (

    Word WVersionregusested,

    LPWSADATA LPWSAData  

    );

  应用程序在使用Winsock API之前必须调用此函数,只有当此函数返回(表示应用程序与Winsock库成功建立起连接),应用程序才可以调用其它 Windows Sockets DLL 中的函数. 

 

2. WSACleanup(断开与Winsocket库的连接)原型如下:

   Int WSACleanup (Void);

 应用程序在使用完Socket库函数之后,必须使用这个函数来释放所占用的内存.

 

3. Socket(套接字建立函数) 原型如下

    SOCKET Socket(

    Int af,

    int type,

    int Protocol

    );

  使用该函数可以建立使用特定协议的网络套接字,例如UDP协议的写法

  var
   S : TSocket;
  begin
   WSAStartup();
 S :=Socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

   WSACleanup;
  end;

 

4. bind(套接字绑定函数) 原型如下:

 Int bind (

 SOCKET S,

 coust struct sockaddr FAR* name,

 int namelen

 );

s : 是通过Socket建立的套接字, addr是指向描述通讯对象的结构体(TSockAddr)的指针,namelen是TSockAddr结构体的长度

 TSockAddr结构体有三个成员.

 1. IP地址

 2. 端口

 3. 地址类型

 

5. listen(套接字监视函数) 原型如下:

   int listen(

   SOCKET s,

   int backlog 

  );

 listen一般用于服务端程序. 

 s 是刚才用socket创建的套接字. backlog用于设定等待连接的客户数(目前最大值为5最小值为1)

 

6. accept(接受连接请求)原型如下

SOCKET accept (

SOCKET s,

struct sockaddr FAR* addr,

int FAR* addrlen 

 );

服务端程序用此函数来接受客户端的socket请求,accpet的返回值是一个新的socket套接字,用这个新的套接字来与当前连接的客户端通信,以前的socket套接字还会保留用来与其它客户端连接.

 

7. recv(接收信息)原型如下:

 int recv (

 SOCKET s,

 char FAR* buf,

 int len,

 int flags

 );

此函数用于面向连接的Socket中,以便能从另一端接收信息.

 

8.Send(发送信息)原型如下:

 int send (

 SOCKET s 

 const char FAR* buf,

 int len,

 int flags

 );

此函数用于面向连接的Socket中,以便于能发送信息到另一端.


》以上8个是Windows Socket 编程主要的几个函数








环境:Windows XP SP 3、 VC++ 6.0、 Windows Server 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0 IDE打开.dws文件 2、点击“!”按钮运行程序 3、如果一切正常会出现一个对话框,然后选择下拉框的“服务端”启动服务器进程--接着点击“监听”按钮 4、然后再点击“!”按钮运行客户端进程 5、如果一切正常,那么选择下拉框的“客户端”启动客户端进程--接着点击“连接”按钮,让客户端连接到socket服务器 6、在客户端的“消息”栏输入信息,然后点击“发送”按钮 7、点击服务器端进程,应该可以看见客户端发送过来的消息,然后可以在“消息”栏输入响应信息,然后点击“发送”按钮,此时会在客户端进程看服务器端进程响应的信息 该示例是实现了一个客户端对象对应一个服务端对象的socket的网络编程--最简单的VC++的网络编程示例。该示使用主要是自定义一个类--它继承MFC库CAsyncSocket类,然后重写OnAccept, OnSend, OnReceive和OnClose方法来实现一对一的VC++的socket网络编程。注意:自定义类关联应用向导生成的对话框类,需要在头文件书写语句“class CHelloSocketDlg;”,并且在.cpp文件写入语句“#include "HelloSocketDlg.h";”,否则编译不会通过! 本示例使用Dialog模式的UI是为方便说明socket编程,在对话框类的OnInitDialog方法有初始化的成员变量的注释说明,在自定义类的注释非常详细。本人觉得MFC使用异步通信类CAsyncSocket实现Java的ServerSocket类和Socket类的编程效果,是非常牛的!(虽然本人认为它还封装得不够OO--因为它封装得让使用者觉得“很傻很天真”)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值