zoukankan      html  css  js  c++  java
  • Socket 学习(二)

    1对1的发送和接收

    Client 端

            void ThreadReceive()
            {
                try
                {
                    while (true)
                    {
                        byte[] B = new byte[1024 * 1024];
                        int length = S1.Receive(B);
                        textBox1.AppendText(Encoding.UTF8.GetString(B, 0, length)+"
    ");
                    }
                }
                catch (Exception EX)
                {
                  textBox1.AppendText(EX.Message.ToString());
                }
     
     
            }
    button1_Click 加上
                    T1 = new Thread(ThreadReceive);
                    T1.IsBackground = true;
                    T1.Start();
    Server 端
     S2.Send(Encoding.UTF8.GetBytes(textBox2.Text));
    

           Dictionary<stringSocket> Dic = new Dictionary<stringSocket>();
    
    服务端增加字典 ,键代表 远程终结点,Socket 代表 与之通讯的套接字。跟不同终结点所对应的套接字通讯,这样1对多的通讯就完成了,群聊也可以实现了。

    什么是套接字:想通讯就要用到网卡,网线,驱动,我们C# 实现底层语言做这些太难了,于是微软封装成了socket,我们实例化的每个socket对象就是一个套接字,
            网络编程就是套接字与套接字之间交互。
    socket两种通讯方式:流式(stream)和 数据报文(DataGram),流式用的是tcp协议,数据报文用的是Udp协议
    TCP :安全,单连接,效率低
    UDP:把数据拆成多分,多个连接传输,效率高,数据接收完需要验证。

    socket 实际是对底层的封装,我们网络传输数据 至少要2根线,一进一出,socket 里面有 RemoteEndPoint(远程终结点) 和 LocalEndPoint(本地终结点) 分别代表网络的进,出关系。
    就到这里。。。
    
    

  • 相关阅读:
    利用qt打开一张图片并转成灰度矩阵
    适配手机端浏览器
    ps常用快捷键(供自己学习查看)
    用选框工具画圆角矩形
    ps制作有背景图片的字体
    所有iOS 设备的屏幕尺寸
    九宫格有规律高亮滚动效果
    移动端点击事件全攻略
    移动端ios升级到11及以上时,手机弹框输入光标出现错位问题
    linux下截取整个网页
  • 原文地址:https://www.cnblogs.com/bingguang/p/3182745.html
Copyright © 2011-2022 走看看