社区
通信技术
帖子详情
如何从这结构中取出地址与端口
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
...全文
192
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写文章
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
UNP学习笔记(二),Socket编程基础
文章详细介绍了UNIX环境下网络编程
中
涉及的关键函数,如bind、connect、accept、recvfrom等,以及它们在处理
地址
结构
和网络字节序转换
中
的作用。connect函数用于客户端与服务器建立连接,可能遇到的错误包括对端未响应或拒绝连接。bind函数将套接字与IP和
端口
绑定,而listen函数使套接字变为被动状态,准备接收连接请求。accept函数则从已完成的连接队列
中
取出
一个连接。此外,文章还提到了getsockname和getpeername函数用于获取套接字的
地址
信息。
从SOCKADDR_STORAGE
结构
中
取IP
地址
和
端口
本文介绍如何从SOCKADDR_STORAGE
结构
中
提取IPv4客户端的IP
地址
和
端口
号,并通过WSASendTo函数将该
结构
转换为SOCKADDR_IN格式,使用inet_ntoa函数将IP
地址
转换为常见格式。
SOCKADDR_STORAGE
结构
中
取IP
地址
和
端口
本文介绍如何从SOCKADDR_STORAGE
结构
中
提取IPv4客户端的IP
地址
和
端口
号,通过WSASendTo函数将SOCKADDR_STORAGE转换为SOCKADDR
结构
,并使用sockaddr_in
结构
中
的sin_addr字段配合inet_ntoa函数获取IP
地址
。
accept读取用户的连接信息,
取出
ip
地址
和
端口
号
这篇博客介绍了如何使用C++进行TCP/IP套接字编程,通过`accept`函数接收客户端的连接,并获取其IP
地址
和
端口
号。首先创建socket,然后绑定到指定
端口
,监听连接。当有新的连接请求时,`accept`返回一个新的socket用于与客户端单独通信,并能获取到客户端的IP(通过`inet_ntoa`函数转换)和
端口
号(使用`ntohs`函数处理)。代码示例展示了整个过程。
通信技术
4,394
社区成员
28,906
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章