关于SOCKET编程中IP地址的问题

nengmou 2002-05-30 06:29:15
在SOCKET编程中(标准的BSD编程),如果服务器与客户机建立SOCKET连接,如果得到客户机的IP地址?
希望朋友们能帮忙给出比较详细的解答,谢谢:)
如果你告诉我用GETPEERNAME,我想,我只能得到一个SOCKADDR的结构体,但是这个结构中,我怎么能得到IP呢?

还有,我怎么把我接收到的包区分是本机的包还是远程主机的包呢?我现在是通过IP地址来区分,还有其它更好的办法吗?

以上都是在WINSOCKET中的,但是为了移植性,还是用标准BSD的函数,没有用WINSOCK的扩展函数,但是用VC6.0编译时,却出现找不到这些函数,我真不知道怎么办,请朋友们帮帮忙:)
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrbeck 2002-06-10
  • 打赏
  • 举报
回复
sockaddr a;
sockaddr_in b=(sockaddr_in )a;
nengmou 2002-06-03
  • 打赏
  • 举报
回复
to:xrbeck(ALEK)
谢谢了!
你说的那个强制转换怎么实现?
呵呵,能不能帮小弟就写一个小例子(仅仅强制转换的例子就行了,其它的代码都不要,我现在正在着急这事呢,谢谢了!)
xrbeck 2002-05-31
  • 打赏
  • 举报
回复
还有一个.看看MSDN的quickinfo的import library,已经很清楚了..
xrbeck 2002-05-31
  • 打赏
  • 举报
回复
1,server端在accept的时候,如果成功,则客户端的IP等信息在这个函数的第二个参数,返回值为客户端的套接字
2.sockaddr与sockaddr_in为同一个结构体,你可以强制转换取
sockaddr_in.sin_addr为IP地址.
3.如果是TCP连接方式,看包的IP地址或者端口,没有别的方法..


nengmou 2002-05-31
  • 打赏
  • 举报
回复
up!

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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