zoukankan      html  css  js  c++  java
  • 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来进行通讯。

  • 相关阅读:
    遍历查询ldap服务器用户
    spring调用存储过程
    jms在jboss上的简单应用
    开发团队如何完成一个项目?
    数据库分区表的使用
    使用native 查询时,对特殊字符的处理。
    spring定时器分析
    sql server监控
    java 类和接口之间的转换
    C++ main 参数使用
  • 原文地址:https://www.cnblogs.com/finlay/p/2952517.html
Copyright © 2011-2022 走看看