Windows SOCKET网络编程

SOCKADDR_IN caddr; //指定IP地址和服务端口信息
struct SOCKADDR_IN
{
short sin_family;          //指定IPV4还是IPV6(AF_INET:ipv4 AF_INET6:ipv6)
u_short sin_port;         //端口号
struct in_addr sin_addr; //ip地址
char sin_zore;          //充当填充项 
}
---------------------------------------------------------------
WSAClean()        //终止Winsock 2 DLL (Ws2_32.dll) 的使用
0                 //操作成功
SOCKET_ERROR     //失败返回值
WSAGetLastError //获取错误消息
--------------------------------------------------------
//创建套接字函数
SOCKET socket(
int af,        //协议地址族 ipv4用 AF_INET ipv6用 AF_INET6
int type,     //套接字类型,TCP/IP用SOCK_STREAM UDP/IP用SOCK_DGRAM
int protocol //TCP时设为IPPRORO_TCP UDP时设置为IPPROTO_UDP
)
INVALID_SOCKET/-1   //失败返回值
返回一个套接字句柄 //成功返回值
---------------------------------------
int closesocket() //关闭套接字
0                //成功返回值
SOCKET_ERROR    //失败返回值
WSAGetLastError//获取错误代码
-----------------------------------
1,客户端函数
-------------------------------------------
int connect(
SOCKET s,
const struct sockaddr FAR* name, //IP,端口信息(SOCKADDR_IN变量 eg:(SOCKADDR*)&addr)
int namelen                     //SOCKADDR_IN的长度(eg:sizeof(addr))
)
----------------------------------------------------
2,服务端函数
--------------------------------
int bind(
SOCKET s,                        //套接字句柄
const struct sockaddr FAR* name,//IP,端口信息(SOCKADDR_IN变量 eg:(SOCKADDR*)&addr)
int namelen                    //SOCKADDR_IN的长度(eg:sizeof(addr))
)
0                  //成功返回值
-1                //失败返回值
WSAGetLastError()//获取错误代码
--------------------------------------------
int listen(
SOCKET s,
int backlog  //等待连接的队列长度 
)


0                  //成功返回值
-1                //失败返回值
WSAGetLastError()//获取错误代码
-----------------------------------------------------
SOCKET accept(
SOCKET s,
struct sockaddr FAR* addr, //(SOCKADDR_IN变量 eg:(SOCKADDR*)&addr)用来保存连接的客户端的IP以及端口信息
int FAR* addrler          //SOCKADDR_IN的长度(eg:sizeof(addr))
)
INVALID_SOCKET           //失败返回值
SOCKET                  //成功返会一个新的连接句柄
------------------------------------------------------------
数据传输
--------------------------------------------------
int send(
SOCKET s,
const char FAR* buf,     //要发送的数据
int len,                //要发送的数据的长度
int flags              //0,MSG_DONTROUTE,MSG_OBB (一般为0)
)
SOCKET_ERROR          //错误返回代码
WSAGetLastError()   //获得错误代码
-----------------------------------------------------------------
int recv(
SOCKET s,
char FAR* buf,    //接受数据储存缓冲区
int len,         //接收长度
int flags       //0,MSG_PEEK,MSG_OBB
)
返回接收字节数 //成功
0             //连接已中断
-1           //错误
perror()    //获得错误信息
----------------------------------------------------------------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值