C# 网络编程

本文详细介绍了C#中的网络编程,重点讲解了Socket的基本概念、类型,以及在TCP协议下的流式Socket。通过一个聊天项目的实例,展示了ChattingServer和ChattingClient的创建过程,包括客户端向Server发送消息、Server循环接受和响应消息的操作。最后,总结了Server如何循环Accept客户端请求以及异常处理策略。
摘要由CSDN通过智能技术生成

C# 网络编程

互联网通过 IP 定位电脑。

IP地址

  • 每台联网的电脑都有一个唯一的IP。(如果有多个网卡,一个网卡,一个IP)
  • IPV4:分为4段,每段8bit,范围是0-255
  • 用户本地网卡IP:127.0.0.1
  • IPV6:128bits

在电脑中通过 Port 来定位程序。

常用端口:21FTP, 25SMTP, 110POP3, 80HTTP, 443HTTPS

程序之间通过 协议 定义通信数据的格式。

网卡接受到数据以后,根据端口号,把数据发送给不同的程序。

Socket

定义:

是一种通信机制,用于描述IP地址和port,是一个通信链的句柄。用于两个程序的通信。

Socket类似打电话。电话通信的双方相当于相互通信的2个程序,电话号码是IP。用户通话前,首先要占有一部电话(socket),同时要知道对方的号码(对方有一个固定的socket),然后拨号(发出连接请求)。对方假如在场并空闲,拿起电话筒,双方就可以通话(连接成功)。双方通话的过程,相当于一方向socket发送数据,一方从socket接收数据。通话结束后,一方挂起电话,相当于关闭socket,撤销连接,


类型:

流式Socket(Stream):是一种面向连接的Socket,tcp协议用stream socket,安全,效率低。

browser和server之间使用的tcp协议(流式socket)

数据报Socket(Datagram):无连接的Socket,udp使用报式Socket,不安全(丢失,顺序混乱,在接收端要分析重排序,要求重发等),效率高。

chatting项目示例

ChattingServer示例:

创建一个winform程序

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //服务器段 监听socket
        Socket sListen = null;

        private void btnListen_Click(object sender, EventArgs e)
        {
            //1.创建监听套接字 使用 ip4协议,流式传输,TCP连接
            sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //2.绑定端口
            //2.1获取网络节点(IPEndPoint)对象
            IPAddress ip = IPAddress.Parse(txtIP.Text);
            IPEndPoint endPoint = new IPEndPoint(ip, int.Parse(txtPort.Text));
            //2.2绑定端口(其实内部 就向系统的 端口表中 注册 了一个端口,并指定了当前程序句柄)
            sListen.Bind(endPoint);
            //2.3设置监听队列
            //The maximum length of the p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值