如何将IP地址转换成sockaddr_in结构体?

changsn 2012-06-15 07:14:54
比如将 127.0.0.1 端口:8000 转换成 sockaddr_in
...全文
433 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
changsn 2012-06-16
  • 打赏
  • 举报
回复

{$R *.dfm}
function BindAddrin(IP:PAnsiChar):TSockAddrIn;
var
SockAdd : sockaddr_in;
begin
SockAdd.sin_family := AF_INET;
SockAdd.sin_addr.S_addr :=inet_addr(PAnsiChar(AnsiString(IP)));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
src:sockaddr_in ;
begin
src:=BindAddrin('127.0.0.1');
ShowMessage(String(StrPas(inet_ntoa(Src.sin_addr))));
end;//早就试过了,不对。

[Quote=引用 4 楼 的回复:]

地址的字节序不用转换
SockAdd_In.sin_addr.S_addr :=inet_addr(PAnsiChar(IP));

另外请注意delphi的版本, 如果高版本的(delphi2009以上)用下面的
SockAdd_In.sin_addr.S_addr :=inet_addr(PAnsiChar(AnsiString(IP)));
[/Quote]
Hexpate 2012-06-16
  • 打赏
  • 举报
回复
地址的字节序不用转换
SockAdd_In.sin_addr.S_addr :=inet_addr(PAnsiChar(IP));

另外请注意delphi的版本, 如果高版本的(delphi2009以上)用下面的
SockAdd_In.sin_addr.S_addr :=inet_addr(PAnsiChar(AnsiString(IP)));
plushenkolxx 2012-06-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

Delphi(Pascal) code

{$R *.dfm}
function BindAddrin(IP:PAnsiChar):TSockAddrIn;
var
SockAdd : sockaddr_in;
begin
SockAdd.sin_family := AF_INET;
SockAdd.sin_addr.S_addr :=inet_addr(PAnsiChar(Ans……
[/Quote]

如果楼主程序是这么写的话 应该是 function 函数里 少一句 Result := SockAdd;
其他没什么错误
changsn 2012-06-16
  • 打赏
  • 举报
回复
大神们帮帮我啊!一下就卡住了
changsn 2012-06-15
  • 打赏
  • 举报
回复
procedure TMainForm.Button1Click(Sender: TObject);
var
car:sockaddr_in;
begin
car:=BindAddrin('127.0.0.1','8000');
ShowMessage(inet_ntoa(car.sin_addr));
ShowMessage(IntToStr(ntohs(car.sin_port )));
end;
测试了,地址总是不对
changsn 2012-06-15
  • 打赏
  • 举报
回复

function Addrin(IP:string;port:Word):TSockAddrIn;
var
SockAdd_In : TSockAddrIn;
begin
SockAdd_In.sin_family := PF_INET;
SockAdd_In.sin_port := htons(port);
SockAdd_In.sin_addr.S_addr :=ntohl(inet_addr(PAnsiChar(IP)));
//结果总是不对啊!!!
end;
Funct

[Quote=引用 1 楼 的回复:]

兄弟别怪我说你, 这样的问题你拿出来问是在耗费你的时间, 有这个时间看一下msdn答案不就有了.
[/Quote]
Hexpate 2012-06-15
  • 打赏
  • 举报
回复
兄弟别怪我说你, 这样的问题你拿出来问是在耗费你的时间, 有这个时间看一下msdn答案不就有了.

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧