C语言SOCKET问题
我在一个局域网里,我朋友在另一个局域网,通过互联网连接,我想用SOCKET与他连接,直接设置IP地址和端口就可以实现连接了吗?如果可以的话,如果局域网内有另外一台电脑用相...
我在一个局域网里,我朋友在另一个局域网,通过互联网连接,我想用SOCKET与他连接,直接设置IP地址和端口就可以实现连接了吗?如果可以的话,如果局域网内有另外一台电脑用相同的端口等待连接,那我朋友的请求会成功发到我这里吗?因为我朋友连接我都是用的外网IP+端口,如:14.213.42.81:666!请高手详细解答,我头都要晕了!
展开
3个回答
展开全部
一般情况下你是连不上的
内网到公网一般都有一个防火墙(和windows防火墙概念可能不太一样,一般在路由器上),负责把内网ip、port转化(映射)成公网的ip、port。“局域网内有另外一台电脑用相同的端口”,一般会被映射成不同的端口,不会冲突。直接监听一个端口,通过公网是连接不到的,即使对上了转化后端口号,一般防火墙也会拦截掉,防火墙分4中类型,有兴趣的可以去查一下资料,有时说的打洞,p2p,其实是指穿透这个防火墙。
如果你的局域网是一个简单的路由器构成,且你能控制这个路由器,里面一般有一个DMZ主机设置,设置成你电脑的ip,它的意思就是把DMZ主机的port对应映射成公网的port(把内网的机器挂在公网上大概就是指这个),之后你的电脑监听一个ip、port,外面的机器就可以连了(ip当然还是要公网的ip,路由器会帮转)
内网到公网一般都有一个防火墙(和windows防火墙概念可能不太一样,一般在路由器上),负责把内网ip、port转化(映射)成公网的ip、port。“局域网内有另外一台电脑用相同的端口”,一般会被映射成不同的端口,不会冲突。直接监听一个端口,通过公网是连接不到的,即使对上了转化后端口号,一般防火墙也会拦截掉,防火墙分4中类型,有兴趣的可以去查一下资料,有时说的打洞,p2p,其实是指穿透这个防火墙。
如果你的局域网是一个简单的路由器构成,且你能控制这个路由器,里面一般有一个DMZ主机设置,设置成你电脑的ip,它的意思就是把DMZ主机的port对应映射成公网的port(把内网的机器挂在公网上大概就是指这个),之后你的电脑监听一个ip、port,外面的机器就可以连了(ip当然还是要公网的ip,路由器会帮转)
展开全部
可以实现连接,只要IP地址和端口号给的正确,例如用inet_addr("14.213.42.81")给ip地址,用addressServer.sin_port = htons(port)配端口号。
如果局域网内有另外一台电脑用相同的端口等待连接,那我朋友的请求会成功发到我这里吗?会,你们的IP号不一样,端口号相同没事。
如果局域网内有另外一台电脑用相同的端口等待连接,那我朋友的请求会成功发到我这里吗?会,你们的IP号不一样,端口号相同没事。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同一局域网内,如果同一路由的话对外的IP地址是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询