2、百度文档后,有亲自操刀过吗?想游泳不下水行吗?
3、自己操刀过程中,一旦出错,你们有没有认真对待过错误信息?
4、在解锁一门招式的时候,有没有思考过类似的招式是怎么样的?或者你来设计这个招式会是什么样子的?思考?思考?关联?关联?
话有点过分,希望能引起你的关注,如果与你不对症,绕过即可,勿喷。
实现服务端可以向客户端发送信息,客户端接受到信息后,显示出来。用 c# 控制台程序实现。
服务端监听本机 ip 与端口,服务端代码如下:
- class Program
- {
- static Socket sck = null;
- static void Main(string[] args)
- {
- sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- //监听本机ip
- IPAddress ip = IPAddress.Parse("172.18.8.196");
- IPEndPoint endPoint = new IPEndPoint(ip, int.Parse("11911"));
- sck.Bind(endPoint);
- sck.Listen(10);
- Console.WriteLine("开启监听!");
- Thread thread = new Thread(JtSocket);
- thread.IsBackground = true;
- thread.Start();
- while (true)
- {
- var msg = Console.ReadLine().Trim();
- if (msg != "")
- {
- byte[] buffer = System.Text.Encoding.ASCII.GetBytes(msg); //将要发送的数据,生成字节数组。
- accSck.Send(buffer);
- Console.WriteLine("向客户端发送了:" + msg);
- }
- }
- }
- static Socket accSck = null;
- static void JtSocket()
- {
- while (true)
- {
- accSck = sck.Accept();
- Console.WriteLine("链接成功!");
- }
- }
- }
客户端连接 ip 为 nginx 代理服务器 ip,客户端如下:
- class Program
- {
- static Socket clientSocket = null;
- static Thread thread = null;
- static void Main(string[] args)
- {
- clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- //这里联通nginx代理服务器地址ip
- IPAddress ip = IPAddress.Parse("172.18.8.252");
- IPEndPoint endpoint = new IPEndPoint(ip, Convert.ToInt32("11911"));
- clientSocket.Connect(endpoint);
- thread = new Thread(ReceMsg);
- thread.IsBackground = true;
- thread.Start();
- Console.WriteLine("123");
- Console.ReadKey();
- }
- static void ReceMsg()
- {
- while (true)
- {
- byte[] buffer = new byte[1024 * 1024 * 2];
- clientSocket.Receive(buffer);
- string ReceiveMsg = System.Text.Encoding.UTF8.GetString(buffer).Substring(0,30);
- Console.WriteLine("接收到数据:" + ReceiveMsg);
- }
- }
- }
准备一台 linux 服务器。nginx 官网: 。在网上搜到大致用的是 这个模块,这里你也可以关注一下官方文档中的其他模块都是做什么的,那么这有相关的启用配置说明,与示例配置。
第一句便是:该
模块是自 1.9.0 版本。此模块不是默认构建的,应使用配置参数启用
- ngx_stream_core_module
。
- --with-stream
那好吧,我们就安装 nginx,搞这个的,安装应该都会吧。
- [root@localhost /]# cd /usr/local/src
- [root@localhost src]# wget http://nginx.org/download/nginx-1.11.10.tar.gz
然后解压,解压完,根据文档提示需要使用这个参数 --with-stream 来启用功能。
- [root@localhost src]# ./configure --prefix=/usr/local/nginx --with-stream
然后,make,make install。
完成之后就是 nginx 配置配置文件啦,这个文档中有示例,可知与 events 模块平级,按照这做就好啦。
- worker_processes 1;
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
- #pid logs/nginx.pid;
- events {
- worker_connections 1024;
- }
- stream{
- upstream abc{
- server 172.18.8.196:11911;
- }
- server{
- listen 11911;
- proxy_pass abc;
- }
- }
ok, 保存退出,重启 nginx 使配置生效即可。到这里所有的操作就都完成啦,让我们拭目以待,看下结果吧。
启动服务端 ---> 显示:开启监听 ---> 启动客户端 ----> 客户端显示:连接成功 ----> 服务端输入:abc-----> 服务端:点击回车 ----> 客户端显示:abc。如下
服务端:客户端:
至此所有的都已整个过程都已结束,功能实现。
接下来是大家最喜欢的总结内容啦,内容有二,如下:
1、希望能关注我其他的文章。
2、博客里面有没有很清楚的说明白,或者你有更好的方式,那么欢迎加入左上方的 2 个交流群,我们一起学习探讨。
来源: http://www.cnblogs.com/knowledgesea/p/6497783.html