社区
通信技术
帖子详情
如何从这结构中取出地址与端口
hanxian
2005-07-02 03:01:08
sockaddr_in = record
sa_family: u_short;
sa_data: array[0..13] of Char;
end;
这是通过getPeerName返回客户端地址信息的变量类型
如何从sa_data: array[0..13] of char 这个数组中取回IP 与PORT
...全文
161
9
打赏
收藏
如何从这结构中取出地址与端口
sockaddr_in = record sa_family: u_short; sa_data: array[0..13] of Char; end; 这是通过getPeerName返回客户端地址信息的变量类型 如何从sa_data: array[0..13] of char 这个数组中取回IP 与PORT
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
li2002
2005-07-22
打赏
举报
回复
这里我再想说明几点:
Siw(浪中沙) 所说的结构没有错。但是给出得端口号 port 需经过转换。
从结构里取出 port:
1、ntohs(); 例:port = ntohs( sa_data.sin_port )
向结构例写入 port:
2、htons() 例:sa_data.sin_port = htons( port )
这里转换函数的字符串含义:
h 表示主机 host.
to 转换方向从左至右
n 表示网络 net
s 表示短字 short
l 表示长字 long
jenycheng
2005-07-15
打赏
举报
回复
学习......
li2002
2005-07-14
打赏
举报
回复
在程序开始 uses 中加上 winsock 以后,sockaddr_in 可直接调用:
sa_data: sockaddr_in;
端口号写入结构中:
sa_data.sin_port := htons(1234);
IP地址写入结构中:
sa_data.sin_addr.S_addr := inet_addr('192.168.0.1');
从结构里取出端口号:
port:=ntohs(sa_datar.sin_port);
从结构里取出IP地址:
IP := inet_ntoa(sa_data.sin_addr);
qrlvls
2005-07-04
打赏
举报
回复
UP,楼上正解
这是一个标准的 SOCKADDR_IN 结构
Caps77
2005-07-04
打赏
举报
回复
接分
Siw
2005-07-03
打赏
举报
回复
sockaddr_in的实际使用结构如下
struct sockaddr_in
{
u_short sin_family; //Address Family
u_short sin_port; //IP Port
in_addr sin_addr; //IP address
char sin_zero[8]; //Padding to make structure the same size as SOCKADDR
}.
具体定义说明可以参看MSDN中对 SOCKADDR,SOCKADDR_IN的定义
其实只要知道数据分布情况,就能提取需要的信息了。
根据你的情况,可以提取你需要的信息(我是按照C++语法描述)
端口号为
u_short port = ((short*)sa_data)[0];
IP地址为
long ip = ((long*)(sa_data+2))[0];
或者是
uchar b_i = sa_data[2+i]。
hanxian
2005-07-02
打赏
举报
回复
UP
hanxian
2005-07-02
打赏
举报
回复
.....
好像没人知道
hanxian
2005-07-02
打赏
举报
回复
UP
UP
UP
UP
从SOCKADDR_STORAGE
结构
中
取IP
地址
和
端口
本人在做IOCP模型的编程时,遇到一个问题就是从SOCKADDR_STORAGE
结构
中
,
取出
客户的IP
地址
和
端口
,以利于统计因为SOCKADDR_STORAGE
结构
比较复杂,而且兼容了IPV4和IPV6的版本,是直接取不出来的,仔细研究"windows 网络...
SOCKADDR_STORAGE
结构
中
取IP
地址
和
端口
就是从SOCKADDR_STORAGE
结构
中
,
取出
客户的IP
地址
和
端口
,以利于统计 因为SOCKADDR_STORAGE
结构
比较复杂,而且兼容了IPV4和IPV6的版本,是直接取不出来的, 仔细研究"windows 网络编程"
中
的代码,意识到,不管怎么样,在收发...
网络编程1—— IP
地址
+
端口
号 +TCP/IP协议 + 协议分层的封装与应用
开始网络编程的篇章喽!本文介绍了IP
地址
+
端口
号 + TCP/IP协议以及数据进行网络传输时的封装与应用,让这些高大上的名词变成为你运用的知识。
C# 获取随机可用
端口
号
TCP与UDP段
结构
中
端口
地址
都是16比特,可以有在0---65535范围内的
端口
号。对于这65536个
端口
号有以下的使用规定: (1)
端口
号小于256的定义为常用
端口
,服务器一般都是通过常用
端口
号来识别的。任何TCP/IP实现所...
基于C语言的
端口
扫描工具设计与实现
扫描方式
端口
开放
端口
关闭connect连接成功connect()返回-1TCP SYN返回SYN及ACK返回RSTTCP FIN不作应答返回RSTUDP扫描不作应答返回ICMP不可达报文 通过这次实验,加深了我们对计算机网络协议的理解与应用,在这个...
通信技术
4,387
社区成员
28,918
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章