windows下c++socket网络编程

网络编程一般为c/s架构,有客户端和服务器。

需要的头文件

#include<WinSock2.h>
#pragma comment(lib,"ws2_32.lib")

主要函数

WSAStartup函数

int WSAStartup(
WORD wVersionRequested, //版本号,使用MAKEWORD宏生成
LPWSADATA lpWSAData //数据
);//返回值:0代表成功,否则失败

socket函数

SOCKET socket(
int af,	//地址类型,常用IPv4地址:AF_INET,和IPv6地址:AF_INET6
int type, //套接字类型,常用TCP协议:SOCK_STREAM,UDP协议:SOCK_DGRAM
int protocol //协议类型,一般填0,自动选择即可
);
//返回值,INVALID_SOCKET失败,该宏实则定义为-1,否则成功

bind函数

int bind( 
SOCKET s, //创建的socket
sockaddr * name, //包含地址和端口的结构体
int namelen //sockaddr 结构长度
);
//返回值:返回SOCKET_ERROR失败,该宏被定义为-1,否则成功,返回值为0

listen函数

int listen(
SOCKET s, //要监听的socket
int backlog //等待连接的最大队列长度
);
//返回值:返回SOCKET_ERROR失败,该宏被定义为-1,否则成功,返回值为0

accept函数

SOCKET accept(
SOCKET s, //接收的socket
sockaddr* addr, //接收到客户端的地址信息
int * addrlen //地址信息长度
);

send函数

int send(
SOCKET s,
char * buf,//要发送的内容
int len, //内容长度
int flags //一般为0,拷贝到程序中就立即删除内核中的数据,或MSG_DONTROUTE:要求传输层不要将数据路由出去,MSG_OOB:标志数据应该被带外发送
);
//返回值:-1(或宏SOCKET_ERROR)表示发送失败,否则返回发送成功的字节数

recv函数

int recv(
SOCKET s, //套接字
 char * buf, //接受数据的缓存区
int len, //缓存区大小
int flags //标志,一般填0,将消息拷贝到应用程序中,将内核中的数据删除,还可以填MSG_PEEK,只取数据,不从内核中删除数据,MSG_OOB:处理带外数据
);
//返回值:小于等于0都表示出错,大于0则表示接收成功的数据大小

closesocket函数和WSACleanup函数

int closesocket(
SOCKET s //要关闭的socket
);

WSACleanup();//程序结束时调用

connect函数

int connect(
SOCKET s, //与服务器连接的socket
sockaddr* name, //服务器的地址端口
int namelen //上个参数结构体的长度
);
//返回值:-1失败,否则成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值