c# socket接收字符串_Siki——C#高级教程 (53~64) 网络Socket

435c89e9f7af8163034bcc8c7ebd9ba5.png

主要内容

  • Socket编程-Udp和Tcp协议的区别
  • Socket编程-Tcp服务器端
  • 聊天室案例
  • Socket编程-Udp服务器端与客户端
  • Tcplistener与Tcpclient
  • Udpclient

Socket编程-Udp和Tcp协议的区别

4c4a3f11eac828d2f410786af66afa9f.png
图示 Tcp的介绍

1d775f597193e39e36889b65ca91b5a1.png
图示 Tcp的运行机制

9bdada3cad841a411400a750aead848f.png
图示 Udp的介绍

89d214f0b2ad60de60c3a20b17a3c69a.png
图示 Udp的运行机制
Tcp 会保证包的顺序,先发的先到达,后发的后到达;Udp不保证。

aeba3cc96e97e2e8e8ae79cd9467438d.png
图示 Tcp与Udp的主要区别

Socket编程-Tcp服务器端+客户端

Tcp服务器端
using 
Tcp客户端
using 
运行效果

先运行服务器,再运行客户端。

3df86c93c6578ba697547365ee11685d.gif
图示 运行效果

聊天室案例

Tcp服务器
using 
Client类
using 
Unity客户端

客户端可输入IP地址,端口号,昵称;获取消息添加了本地的时间节点以及富文本。

using 

3d9d9d82a73347c6a152f133050fa1b7.gif
图示 运行效果

Socket编程-Udp服务器端与客户端

Socket编程_Udp服务器端
using 
Socket编程_Udp客户端
using 

f09f6e2dea41cd9d9c87fb5e4451238e.png
图示 运行效果

Tcplistener与Tcpclient

ae5f7e7853d3735ebf184b48a84093a6.png
图示 综述

2fb2d0b0257b6b80532320004c114b9e.png
图示 TcpClient

fc69fb9eb0deb7575027dd6d3dbb259f.png
图示 TcpListener
服务器_tcplistener
using 
客户端_tcpclient
using System;
using System.Net.Sockets;
using System.Text;

namespace  tcpclient
{
    class Program {
        static void Main(string[] args) {
            //当我们创建tcpclient对象的时候,就会跟server去建立连接
            TcpClient client = new TcpClient("192.168.0.112",7788);
            NetworkStream stream = client.GetStream();//通过网络流进行数据的交换
            //read用来读取数据,write用来写入数据其实就是发送数据
            //利用一个死循环,重复向服务器端发送数据
            while (true)
            {
                string message = Console.ReadLine();
                byte[] data = Encoding.UTF8.GetBytes(message);
                stream.Write(data, 0, data.Length);
            }
        }
    }
}

de4afe76b18707521bb22973a4ae7398.png
图示 运行结果

Udpclient

Udp协议不需要做链接,客户端是服务器端,服务器端也是客户端。

7861ef3e4698a2ca24874ca902f0fbea.png
图示 Udpclient简介
Udp服务器端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace udpclient
{
    class Program {
        static void Main(string[] args) {
            //创建udpclient 绑定ip跟端口号
            UdpClient udpClient = new UdpClient(new IPEndPoint(IPAddress.Parse("192.168.114.238"),7788));
            while (true)
            {
                //接收数据
                IPEndPoint point = new IPEndPoint(IPAddress.Any, 0);
                //通过point确定数据来自哪个ip的哪个端口号 返回值是一个字节数组,就是我们的数据
                byte[] data = udpClient.Receive(ref point);
                string message = Encoding.UTF8.GetString(data);
                Console.WriteLine("收到了消息:" + message);
            }
        }
    }
}
Udp客户端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace  udpclient
{
    class Program {
        static void Main(string[] args) {
            //创建udpclient对象
            UdpClient client = new UdpClient();
            while (true)
            {
                string message = Console.ReadLine();
                byte[] data = Encoding.UTF8.GetBytes(message);
     client.Send(data, data.Length, new IPEndPoint(IPAddress.Parse("192.168.0.112"), 7788));
            }
        }
    }
}

5a7bf08aeb67d1babaa09a800f66b540.png
图示 运行效果

总结

学习siki的C#教程,打基础。

该套视频在泰课在线搜索《第三季 C#编程高级篇》,可以在线学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值