请问connect函数中,这个sockaddr如果是localhost的话怎么填写?

qhgary 2006-06-08 03:27:47
connect(SOCKET s, const struct sockaddr *name, int namelen)
请问这个sockaddr如果是localhost的话怎么填写?
s.sin_family = AF_INET;
s.sin_port = htons(2000);
s.sin_addr.s_addr= ??
我用127.0.0.1怎么都连不上,但是如果我用192.168.0.56类似这样的IP就可以连上了。

注意,我用192.168.0.56可以连接成功,说明服务器端程序没有问题,本代码中其他
部分也没有问题。我想就是这个s.sin_addr.s_addr=怎么设置的问题。
...全文
633 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
MuseIn 2006-06-16
  • 打赏
  • 举报
回复
127.0.0.1 肯定是对的
newplayer1 2006-06-15
  • 打赏
  • 举报
回复
你服务程序启动监听后,在dos 窗口中,输入 netstat -an指令
看你监听的地址是如何写的?推荐你写
SvrListen.sin_addr.s_addr = inet_addr ("0.0.0.0");
这样,无论你写localhost 或者127.0.0.1 ,甚至你上面写的地址,都OK
周江涛 2006-06-15
  • 打赏
  • 举报
回复
ServerAddr.sin_addr.S_un.S_addr = inet_addr("10.0.0.123");
song_09 2006-06-14
  • 打赏
  • 举报
回复
连接localhost的话,填你本机的IP地址就可以了。
s.sin_addr.s_addr = 本机的IP
qhgary 2006-06-12
  • 打赏
  • 举报
回复
To DentistryDoctor

> 得看服务器上是绑定在什么地址上的。

能说的详细点么?比如服务器绑定在什么地方就可以,什么地方就不行呢?
mynamelj 2006-06-12
  • 打赏
  • 举报
回复
INADDR_ANY
nickyzyf 2006-06-11
  • 打赏
  • 举报
回复

试试这样行不行

char lchost[] = "localhost";
hostent* pthh = gethostbyname(lchost);

sockaddr_in servaddr;
memcpy(&servaddr.sin_addr , pthh->h_addr , ptrh->h_length );

connect(s,(sockaddr*)&servaddr,sizeof(servaddr));
DentistryDoctor 2006-06-11
  • 打赏
  • 举报
回复
得看服务器上是绑定在什么地址上的。
qhgary 2006-06-08
  • 打赏
  • 举报
回复
s.sin_addr.s_addr = htonl( INADDR_ANY );
or
s.sin_addr.s_addr = 0;

尝试过,不行的。

服务器可以限制的么?怎么限制阿?
hamimelon 2006-06-08
  • 打赏
  • 举报
回复
先gethostname
再gethostbyname
然后设置这个地址!
involute 2006-06-08
  • 打赏
  • 举报
回复
你的机器有双网卡(或者其他的AD猫什么的,因为你可能有双IP地址)么?

如果没有,说明服务器不允许用这种方式访问。
折腾_苏州 2006-06-08
  • 打赏
  • 举报
回复
使用
s.sin_addr.s_addr = htonl( INADDR_ANY );
or
s.sin_addr.s_addr = 0;

不管你用127.0.0.1还是192.168.0.56都可以连的上
qhgary 2006-06-08
  • 打赏
  • 举报
回复
我尝试过了,不行。
我用GetLastError,然后FormatMessage输出得到的消息是:
No connection could be made because the target machine actively refused it.

但是换成我内网的ip:192.168.0.56就连接上了...可能是什么原因呢?
involute 2006-06-08
  • 打赏
  • 举报
回复
s.sin_addr.s_addr = inet_addr("127.0.0.1");
Kudeet 2006-06-08
  • 打赏
  • 举报
回复
s.sin_addr.s_addr=inet_addr("127.0.0.1");
你服务器listen的地址怎么写的呢

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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