Socket编程如何搭建一个外网可以访问的服务器

Socket编程如何搭建一个外网可以访问的服务器,第1张

搭建外网访问,首先你要有一台外网可访问的服务器,有以下几种方法可以实现。

一、购买外网服务器。由于服务器端使用JAVA语言开发,所以外网服务器操作系统可以是Linux或Windows,这个需要你花钱购买。如果只是测试,你可以选择购买阿里云的云服务器,非常便宜。

二、还有一种方法就是你通过花生壳之类的软件进行映射你的网络,但花生壳对长城宽带之类的网络支持不是特别好,如果需要很好的支持,那也需要花钱购买。

三、如果你是通过路由器上网,并且可以操作路由器权限且使用的是电信或者是联通的网络,那可以直接在路由器里面做端口映射,这个你可以百度一下,有很多文章讲的非常清楚,这里篇幅限制,就不贴了。

四、如果你是直接通过猫上网且使用电信或联通宽带,那可以直接使用本机外网IP访问你的程序。

以上四种方法中,最稳定的还是购买外网服务器,其它都会有各种问题,你可以选择其中适合你的一种方法。希望能帮助到你

简单描述: 服务器端是等待别人连接的一端 客户端是主动连接的一端

两个QQ的例子:

1两个QQ都是客户端

2两个QQ都连接到腾讯的QQ服务器上

3两个QQ之间聊天首先QQ1 将消息发到QQ服务器上再由QQ服务器将消息发送到QQ2上

腾讯可以限制聊天内容:

在QQ1发到QQ服务器上时就进行过滤如果聊天内容不符合要求就不给你转发到QQ2上

程序源代码:

调用connect的是客户端

你重复这两句是什么目的?

bytes = newSocketReceive(recByteMsg, recByteMsgLength, 0);

recMsg = EncodingGetEncoding("GB2312")GetString(recByteMsg, 0, bytes);

bytes = newSocketReceive(recByteMsg, recByteMsgLength, 0);

recMsg = EncodingGetEncoding("GB2312")GetString(recByteMsg, 0, bytes);

如果你采用阻塞模式无须重复这样写啊,当然阻塞模式可能出现粘包问题

我们一般采用发送端设置边界标示,根据标示在接受端来区分上下包,这和IP包的包头标志是一样的道理。如果你发送的字符长度是固定的那么也可以不需要设置边界标志了。

这个涉及字符编码问题。

你可以在java端一般是Utf8格式的,c语言一般和系统一样是GBK编码的。所以需要你做一下编码转换。

服务器端接收之后,对接收到的字符串,进行编码转换。转成GBK编码,再显示,就没问题了

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Socket编程如何搭建一个外网可以访问的服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情