C# HTTP 通讯

前言

之前做 CS 通讯的时候,用的是 socket ,直接监听 IP、端口,在网络分层模型中,相当于从传输层入手,传输层下面的层不用管,上面的层用不上。

如下图所示:

socket 不是协议,是对 TCP/IP 的封装,应用层的程序猿只管用就行了。

但是问题来了,用 socket 接口,就必须得知道服务器的 IP 和端口,IP 或者端口任何一个变化了,客户端的 socket 就得重新配置,这对客户来说是不友好的。

在一些应用场景中,可以使用 HTTP 协议,不用知道 IP 和端口,HTTP 的端口默认是 80。

socket 和 HTTP 的区别可以参考 http://www.php.cn/php-weizijiaocheng-363000.html

HTTP 协议处于应用层,在 .Net 中使用 http 类,只需要知道服务器的域名,就可以通讯了,从域名到 IP 的解析,由 DNS 完成。

如果迁移服务器, IP 发生变化,修改 DNS 解析即可,客户端不受任何影响,对客户来说是无感的。

花生壳 HTTP 映射

这里的花生壳指的是一个网络服务商的品牌名。他们家提供的网络服务很好用,我还是老会员,那个时候免费注册的,每个月有 2GB 的内网穿透流量 😀 。

用花生壳内网穿透一个 HTTP 应用:

然后就可以使用 HTTP 协议,通过域名请求映射服务器的资源了。

C# HTTP 参考例程

客户端

 

服务端

 

 

 

 

发表评论

Powered by WordPress | Theme Revised from Doo

苏ICP备18047621号

Copyright © 2017-2023 追光者博客