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() //获得错误信息
----------------------------------------------------------------
Windows SOCKET网络编程
最新推荐文章于 2024-08-22 17:42:47 发布