zoukankan      html  css  js  c++  java
  • C# 编程 TCP协议 (基本知识点)

    TCP通讯机制是:一对一的传递机制,具体分为客户端和服务器。就好比打电话的方式,客户端(主动打电话的人),服务器(接听电话的人)。

    二者的分别作用是:客户端:1主动打电话(也就是试连接) 2数据传送

                             服务器:1时时刻刻在电话旁边的等电话(侦听) 2 数据传递

    功能实现的步骤是这样的:

                          第一步:连接彼此间的数据传送链  

                             代码说明: 试连接(客户端)

                                             TcpClient client = new TcpClient(_RemoteIp, _RemotePort);//并启动了,和连接作用

                                             或者TcpClient tclient = new TcpClient(); tclient.Connect("192.168.1.100", 8080);

                                     侦听(服务器)

                                      IPAddress ipa = IPAddress.Parse("192.168.1.100");

                                      TcpListener myListener = new TcpListener(ipa, 8080);

                                      myListener.Start();

                         如果没有侦听,就会出现报错,并且二者一直在连接,连接成功后才会去执行下一步代码

                    第二步:数据链已经建立好了,就要完成数据的传送 客户端和服务器都有数据发送,接受的功能它们是一一对应使用的,不可能同一客户端即完成传送数据和接受数据的内容,不能去读出缓存中的内容

                         客户端功能实现:

                                   1.发送:NetworkStream ns = tclient.GetStream();

                                             String content = "要发送的内容";

     

                                             byte[] data = Encoding.Unicode.GetBytes(content);

     

                                             ns.Write(data, 0, data.Length);

     

                                    2.接受:if (tclient.Available > 0)
                                    {
                                       byte[] data = new byte[1024];
                                       ns.Read(data, 0, 1024);
                                       String content = Encoding.Unicode.GetString(data);
                                    }

     

                         服务器端的功能实现: Socket mySocket = myListener.AcceptSocket();

                                  1.发送:mySocket.Send(Encoding.Unicode.GetBytes("要发送的内容"));

                                  2.接收:byte[] data = new byte[1024];
                                   if (mySocket.Available > 0)
                                   {
                                       mySocket.Receive(data);
                                       String content = Encoding.Unicode.GetString(data);
                                   }

     

    基本的实现了数据传递的功能了,以下对一些细节说明一下:

    1.连接地址通常包括两部分——主机名和端口,如www.yesky.com:80中,www.yesky.com就是主机名,80指主机的80端口;另一种方式是主机名也可以用IP地址代替。

    2.在使用结束后,需要把相关类关闭掉,避免下次使用时,出现端口占用报错

    3. 对于服务器的侦听,需要建立一个建立一个无限循环来实现侦听的功能

    4.数据传递的过程中,需要进行字符串的转换,采用不同的编码形式,同样也存在不同的解码方式,类似于串口的通讯机制

     

                                    

  • 相关阅读:
    PHP、JAVA、C#、Object-C 通用的DES加密
    xtraScrollableControl 滚动条随鼠标滚动
    C#让TopMost窗体弹出并置顶层但不获取当前输入焦点的终极办法
    C#获取“所有用户桌面”的路径
    C#如何获取快捷方式指向的目标文件
    10
    09
    新浪微博中tableview中头部信息
    ASIHTTPRequest类库简介和使用说明
    IOS常用设计模式之委托模式
  • 原文地址:https://www.cnblogs.com/liuxiaowei0543/p/3124284.html
Copyright © 2011-2022 走看看