一天一点
C++博客
::
首页
::
联系
::
聚合
::
管理
13 Posts :: 7 Stories :: 3 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(18)
给我留言
查看公开留言
查看私人留言
我参与的团队
随笔档案
2010年5月 (1)
2010年4月 (2)
2010年3月 (2)
2009年12月 (2)
2009年11月 (1)
2009年10月 (1)
2009年9月 (4)
文章分类
C++知识(1)
VC/MFC知识(4)
问题总结(1)
自定义函数(1)
文章档案
2010年12月 (1)
2010年10月 (1)
2010年5月 (1)
2010年4月 (1)
2010年3月 (3)
Socket方面
Windows 套接字错误代码、 值,和的含义
本文介绍了可能的错误代码由 WSAGetLastError (Wsapiref_2tiq.asp) 函数返回的。错误错误宏按字母顺序列出。有些 Winsock2.h 中定义的错误代码并不会从任何函数返回。 在这篇文章中不包括这些错误代码。
搜索
最新评论
1. re: WSAEFAULT 10014 Bad address.
指针用法出错
send(s,(char*)&value,sizeof(int));
--Goodwu
2. re: Ubuntu9.04下修改MAC地址和固定IP地址
评论内容较长,点击标题查看
--billow
3. re: 第一个五年计划
40天过去了,居然还是这个样子。唉。。
--billow
阅读排行榜
1. 使用Code::Blocks编译socket代码需要增加ws2_32.lib文件(4150)
2. WSAEFAULT 10014 Bad address. (1617)
3. Ubuntu9.04下修改MAC地址和固定IP地址(1617)
4. IE8与VS2008兼容性问题。(531)
5. socket编程遇到的问题(459)
评论排行榜
1. Ubuntu9.04下修改MAC地址和固定IP地址(1)
2. 第一个五年计划(1)
3. WSAEFAULT 10014 Bad address. (1)
4. IE8与VS2008兼容性问题。(0)
5. 每天到8点吧。(0)
socket编程遇到的问题
1
typedef
struct
in_addr
{
2
union
{
3
struct
{ UCHAR s_b1,s_b2,s_b3,s_b4; }
S_un_b;
4
struct
{ USHORT s_w1,s_w2; }
S_un_w;
5
ULONG S_addr;
6
}
S_un;
7
#define
s_addr S_un.S_addr /* can be used for most tcp & ip code */
8
#define
s_host S_un.S_un_b.s_b2
//
host on imp
9
#define
s_net S_un.S_un_b.s_b1
//
network
10
#define
s_imp S_un.S_un_w.s_w2
//
imp
11
#define
s_impno S_un.S_un_b.s_b4
//
imp #
12
#define
s_lh S_un.S_un_b.s_b3
//
logical host
13
}
IN_ADDR,
*
PIN_ADDR, FAR
*
LPIN_ADDR;
14
上面是in_addr的定义,共4字节,如注释所说,大多数TCP/IP情况使用ULONG型的S_addr,其它2个联合体是给host--imp协议使用的,host--imp协议详见RFC文档。
网络传输使用的是big-endian,主流CPU多采用little-endian,导致多字节数据字节顺序不一致。例如:ULONG型数据0X12345678,在little-endian下内存中存放为0X78 0X56 0X34 0X12,在big-endian下内存中存放为0X12 0X34 0X56 0X78。所以使用htonl,htons等函数能够保证多字节数据在网络传输时正确的字节顺序。
SOCKADDR_IN addrto;
//((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))->GetAddress(dwIP);
GetDlgItemText(IDC_EDIT_IP,ipaddress); //从edit上获得IP地址
MessageBox(ipaddress);
addrto.sin_addr.S_un.S_addr = inet_addr(ipaddress); //将获得的IP地址转换为网络地址
addrto.sin_family = AF_INET;
addrto.sin_port = htons(6240);
posted on 2009-12-22 21:40
billow
阅读(459)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Copyright @ billow
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster