windows网络编程学习笔记一
来源:互联网 发布:淘宝美工要学多久 编辑:程序博客网 时间:2024/04/30 07:59
Windows的初始化
1.每个winsock应用都必须加载合适的winsock dll 版本是通过WSAStartup函数实现的。定义如下:
int WSAStartup( //加载winsock库
WORD wVersionRequested, //用于指定真被夹在的winsock库的版本,用MAKEWORD(x,y)来获得wVersionRequested的值
LPWSADATA IpWSAData); //指向LPWSADATA结构的指针,该结构定义如下:
typedef struct WSAData
{
WORD wVersion;
WORD wHighVersion;
....
}WSADATA,*LPWSADATA;
程序完成后调用WSACleanup函数来释放资源。
2.WINSOCk调用失败最常见的返回值是socket_error。
应用程序框架
#include<winsock2.h>
#include<iostream>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int main(){
WSADATA wsaData;
int Ret;
if((Ret=WSAStartup(MAKEWORD(2,2),&wsaData))!=0){
cout<<Ret;
return -1;
}
if(WSACleanup()==SOCKET_ERROR){
cout<<WSAGetLastError();
}
return 0;
}
3.协议寻址:
应用程序通过sockaddr_in结构来指定ip地址和服务端口信息,格式如下:
struct sockaddr_in
{
short sin_family; //winsock 正在使用的的地址簇
u_short sin_port; //端口号
struct in_addr sin_addr; //把ip地址作为一个4字节的量存储起来,它是一个无符号长整型整数。
char sin_zero[8];
}
inet_addr 用于把一个点分法表示的ip地址转换成一个32位无符号整数。定义如下:
unsigned long inet_addr
{
const char FAR *cp
};
字节排序函数:
主机字节顺序转换成网络字节顺序:u_long htonl(u_long hostlong);
int WSAHtonl(SOCKET s,u_long hostlong,u_long FAR * ipnetlong);
如何创建SOCKADDR_IN结构
SOCKADDR_IN InternetAddr;
INT nPortId=5150;
InternetAddr.sin_family=AF_INET;
InternetAddr.sin_addr.s_addr=inet_addr("136.149.3.29");
InternetAddr.sin_port=htons(nPortId);
4.创建套接字:
SOCKET socket(int af, //协议地址簇
int type, //协议套接字类型 tcp/ip应设为SOCK_STREAM
int protocol);
- Windows Socket网络编程学习笔记一
- windows网络编程学习笔记一
- Windows 网络编程技术学习笔记(一)
- Windows网络编程学习(一)
- 网络编程学习笔记一
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 【大数问题】求高精度幂
- 分享
- 【UI设计】time倒计
- HighCharts之2D柱状图
- 《深入浅出 Java Concurrency》目录
- windows网络编程学习笔记一
- poj2253-我的第一篇floyd
- ZOJ-2165
- PAT1055. The World's Richest
- adb命令安装和卸载apk文件
- oracle 聚组函数
- JSONObject与JSONArray的使用
- 内存泄露和内存溢出区别
- 闲扯LUA之一