如何使客户端和服务端通过外网链接?

小湿哥 2013-11-08 12:16:53
举个例子,比如QQ。
用户电脑上都是QQ客户端,腾讯有QQ服务器。

A 发消息 给B

A 发到 服务器,服务器转发到B。


局域网很简单,socket编程就可以了。

在互联网上该怎么设计?用Http?http怎么弄?完全没有头绪哇。
...全文
404 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
SKATE11 2013-12-23
  • 打赏
  • 举报
回复
楼主搞到能不能发我一份 852276192@qq.com
a358763471 2013-12-23
  • 打赏
  • 举报
回复
我现在是局域网手机直接登录服务器,但现在要走外网,手机登录外网服务器。可这个时候服务器怎么找得到另外我那个服务器呢(必须要找,因为最终设备在那里)?也就是这样: phone+server1,外网的时候改为: phone+server->server1;这个时候server1应该也作为server的客户端了吧?具体怎么实现求大神~~~
a358763471 2013-12-23
  • 打赏
  • 举报
回复
哥们问题解决的咋样了?我现在也需要这样一个例子啊。。。呵呵。
max_min_ 2013-11-08
  • 打赏
  • 举报
回复
引用 2 楼 jacicson1987 的回复:
[quote=引用 1 楼 dyw 的回复:] 类似啊。只是IP地址不同,需要外网IP。
有这么简单?。。用http协议吗? 求文档,求连接,求例子!!。[/quote] 一样的用 socket啊
小湿哥 2013-11-08
  • 打赏
  • 举报
回复
引用 1 楼 dyw 的回复:
类似啊。只是IP地址不同,需要外网IP。
有这么简单?。。用http协议吗? 求文档,求连接,求例子!!。
dyw 2013-11-08
  • 打赏
  • 举报
回复
类似啊。只是IP地址不同,需要外网IP。
小湿哥 2013-11-08
  • 打赏
  • 举报
回复
引用 9 楼 dyw 的回复:
[quote=引用 2 楼 jacicson1987 的回复:] [quote=引用 1 楼 dyw 的回复:] 类似啊。只是IP地址不同,需要外网IP。
有这么简单?。。用http协议吗? 求文档,求连接,求例子!!。[/quote] http协议只是一种数据通讯协议。socket之间连接后可以通过Http协议传输数据,其它协议也可以,你自己也可以定义。socket连接(建立连接只需IP地址和端口)好比是铺了一条公路,公路上跑的车是各种协议命令,车里载的人或物就是协议命令所携带的数据,而你最感兴趣的就是数据了。 需要例子,可以google:搜索 c++ socket example [/quote] 恩。讲得很好,通俗易懂,了解了。。 其实所谓http协议只是数据格式,核心还是socket.. 那外网之间的socket链接,只要有客户端的外网ip以及服务端的外网ip,就可以了吗?与局域网的socket有什么不同?
dyw 2013-11-08
  • 打赏
  • 举报
回复
引用 2 楼 jacicson1987 的回复:
[quote=引用 1 楼 dyw 的回复:] 类似啊。只是IP地址不同,需要外网IP。
有这么简单?。。用http协议吗? 求文档,求连接,求例子!!。[/quote] http协议只是一种数据通讯协议。socket之间连接后可以通过Http协议传输数据,其它协议也可以,你自己也可以定义。socket连接(建立连接只需IP地址和端口)好比是铺了一条公路,公路上跑的车是各种协议命令,车里载的人或物就是协议命令所携带的数据,而你最感兴趣的就是数据了。 需要例子,可以google:搜索 c++ socket example
绿皮蛙 2013-11-08
  • 打赏
  • 举报
回复
引用 5 楼 jacicson1987 的回复:
[quote=引用 4 楼 lipoor1234 的回复:] 类似啊 用socket 先定好客户端和服务器端的协议 然后就是send 和receive什么的了
有没有例子或者相关文章啊?[/quote] 这个嘛 不好意思 没有 你可以网上自己搜索一下 应该有的 大概的思路 如果只是简单实现这种功能的话,首先你必须根据你要实现的功能 自己定义一个协议 ,所谓协议就是客户端和服务器交流的方式 比如你客户端发送一个数据包到服务器 服务器要能解析这个数据包 然后服务器端根据解析出来的数据 根据服务器端的代码逻辑来做相应的操作,协议的格式可以是xml这样的用标签来表示不同的业务或者操作流程,为了安全 你也可以加密,比如QQ的话 可能就是你登录之后就会有一个tcp连接常连着 然后你发送聊天内容的时候 服务器可能会收到包括来自哪个QQ 内容文本 发给谁 等等的内容 然后服务器再转发给收到消息的QQ 这个可能是UDP的协议 因为不管在不在线 你的聊天内容都发出去了 但是上层可能又做了保护 保证通信的可靠性 客户端使用 UDP 协议发出消息后,服务器收到该包,需要使用 UDP 协议发回一个应答包
  • 打赏
  • 举报
回复
路由器里把服务器设置成DMZ主机就行了
肩抗轨道炮 2013-11-08
  • 打赏
  • 举报
回复
如果两个电脑都躲在VPN后面就难了,我到现在找不到这种情况不靠第三方的办法
小湿哥 2013-11-08
  • 打赏
  • 举报
回复
引用 4 楼 lipoor1234 的回复:
类似啊 用socket 先定好客户端和服务器端的协议 然后就是send 和receive什么的了
有没有例子或者相关文章啊?
绿皮蛙 2013-11-08
  • 打赏
  • 举报
回复
类似啊 用socket 先定好客户端和服务器端的协议 然后就是send 和receive什么的了

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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