• C# TCP学习笔记


    TCP是一种面向连接的,可靠的,基于字节流的传输层通信协议。

    • 1.TCP的工作过程

    连接的建立:三次握手,传输数据,连接终止。

    • 2.TCP的主要特点

    面向连接,端对端通信,高可靠性,全双工方法传输,数据以字节方法传输,传输数据无消息边界。

    • 3.TCP的同步于异步

    利用TCP开发时,.NET框架提供两种工作方式:同步和异步。

    同步的工作方式是指利用TCP编写的程序执行到监听或接受语句时,在未完成当前工作前不再继续执行,线程出于阻塞状态。

    异步的工作方式是指程序执行到监听或接受语句时,无论当前工作是否完成,都会继续往下执行。

    关于同步于异步的区别和联系,我自己也没有弄清楚。同步的执行速度快(对于计算机来说),异步执行速度慢(但给用户感觉执行快一些)。

    • 4.连接方式

    4.1使用Socket建立连接

    客户端部分代码:

     1 //定义变量
     2 public IPEndPoint ipEndPoint;
     3 public Socket clentSocket;
     4 public NetworkStream netStream;
     5 public Thread threadConnection;
     6 
     7 //...
     8 
     9 //初始化变量
    10 ipEndPoint = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));
    11 clentSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    12 clentSocket.Connect(ipEndPoint);

      服务端部分代码:

     1 //定义变量
     2 public IPEndPoint ipEndPoint;
     3 public Socket clientSocket;
     4 public Socket serverSocket;
     5 
     6 //....
     7 
     8 //初始化变量
     9  ipEndPoint = new IPEndPoint(IPAddress.Any, 65535);
    10 serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    11 serverSocket.Bind(ipEndPoint);
    12 serverSocket.Listen(65535);

      使用这种方式是利用Socket来进行通信。

    4.2使用TcpClient和TcpListener建立连接

    客户端部分代码:

    1 public TcpClient tcpClient = null;
    2 public NetworkStream networkStream = null;
    3 
    4 //....
    5 
    6 tcpClient = new TcpClient();
    7 tcpClient.Connect(txtIP.Text, int.Parse(txtPort.Text));

      服务端部分代码:

    1 private TcpListener tcpLister = null;
    2 private TcpClient tcpClient = null;
    3 
    4 //...
    5 
    6 tcpLister = new TcpListener(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));
    7 tcpLister.Start();

    这种方式是利用.NET封装的TcpClient和TcpListener来进行通讯。

  • 相关阅读:
    嵌入式GUI FTK介绍(11)交叉编译
    3G手机 。Android 。Broncho
    PXA300/310的2D图形加速示例代码
    在终端下修改Android手机(Broncho A1)的系统设置
    FTK google group开通,欢迎加入交流。
    使用WebDeployment Project改善VS2005发布网站问题
    IIS 伪静态设置
    使用jQuery简化Ajax开发——Ajax开发入门[令狐葱翻译版part1]
    web.config文件中的特殊字符处理
    网上找的asp.net伪静态教程,大晚上补补课
  • 原文地址:https://www.cnblogs.com/finlay/p/2952517.html
Copyright © 2020-2023  润新知