Socket_TCP协议的同步与异步调用

同步: Accept Connect Receive异步: BeginAccept EndAccept BeginReceive EndReceiveTCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP时一种流式协议流式协议的特点是什么?就像流水连续不断那样,消息之间没有边界。例如send了3条消息(这里的“消息...
摘要由CSDN通过智能技术生成

同步: Accept Connect

           Receive

异步: BeginAccept   EndAccept

            BeginReceive  EndReceive

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

TCP时一种流式协议

流式协议的特点是什么?就像流水连续不断那样,消息之间没有边界。例如send了3条消息(这里的“消息”是指应用层的一个完整的协议包),分别是100字节、50字节、80字节,recv时可能收到的是230字节,就是说一次recv收到了3条消息,需要应用逻辑自己对recv到的数据进行分析,得出完整的消息。能一次recv到多个消息,也可能一次recv到一个半消息或半个消息,都是有可能的,这就是流式协议的特点。

TCP代码实现:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
/*IPEndPoint类包含应用程序连接到主机上的服务所需的主机和端口信息,通过组合服务的主机IP地址和端口号,IPEndPoint类形成到服务的连接点。
             *在IPEndPoint类中有两个很有用的构造函数:
             *public IPEndPoint(long, int); 
             *public IPEndPoint(IPAddress, int);
             *它们的作用就是用指定的地址和端口号初始化IPEndPoint类的新实例*/
namespace Socket_TCP协议_服务器端
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Socket
            Socket tcpServer = new Socket
   (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //绑定IP和端口号 192.168.0.104
            IPAddress address = new IPAddress(new byte[]{192,168,0,104});
            //或者IPAddress address = IPAddress.Parse(192,168,0,104);
            EndPoint endPoint = new IPEndPoint(address,7788);//IPEndPoint对IP和端口做了一层封装的类
            tcpServer.Bind(endPoint);//绑定IP和端口号
            tcpServer.Listen(100);//开始监听端口号
            Socket clientSocket = tcpServer.Accept();//接受一条客户端连接

            //向客户端发送消息
        
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值