Socket四(客户端实现)

目录

一 上一章回顾

二 引入命名空间

三 定义套接字属性

四 定义初始化套接字方法

1 开启监听

2 发送消息

3 接受消息

五 关闭套接字

六 总结

七 下章预告


一 上一章回顾

一 上一章回顾

二 引入命名空间

三 定义套接字属性

四 定义初始化套接字方法

1 开启监听

2 发送消息

3 接受消息

五 关闭套接字

六 总结

七 下章预告


二 引入命名空间

我们在使用系统网络套接字功能前,需要引入套接字命名空间,以便于后续我们调用里面的成员

using System.Net;
using System.Net.Sockets;

三 定义套接字属性

我们定义套接字属性,作为客户端套接字,如下

 public Socket socket { get; set; }

四 定义初始化套接字方法

首先定义初始化套接字方法,参数为IP地址、端口号、发送消息

1 开启监听

  1. 初始化服务器套接字对象,传入参数为IPv4地址簇、流式套接字、TCP\IP协议。
  2. 初始化IPEndPoint对象,传入参数为IP地址、端口号

2 发送消息

  1. 将字符串消息转化为字节数组
  2. 发送消息

3 接受消息

  1. 定义字节缓冲区
  2. 调用Socket的Receive()方法,将数据存入字节缓冲区
  3. 将字节缓冲区信息转化为字符串信息
  4. 返回字符串信息到调用对象
        public string InitClient(string ip,int port,string sendMsg)
        {
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Connect(new IPEndPoint(IPAddress.Parse(ip), port));

           
            byte[] sendBuffer = Encoding.UTF8.GetBytes(sendMsg);
            socket.Send(sendBuffer);

            byte[] buffer = new byte[1024];
            int count = socket.Receive(buffer);
            return Encoding.UTF8.GetString(buffer, 0, count);

        }

五 关闭套接字

定义关闭套接字方法,调用Socket对象Shutdown()方法关闭二者套接字通信,Close()完全关闭。

        public void CloseClient()
        {
            if (socket != null && socket.Connected)
            {
                socket.Shutdown(SocketShutdown.Both);
                socket.Close();
            }
        }

六 总结

以上我给大家介绍了套接字命名空间引入、套接字属性定义、服务器套接字初始化方法、套接字关闭方法等内容,我们从中可以了解客户端套接字的工作原理。


七 下章预告

下一章我会教大家服务器套接字异步监听的工作原理。


博主RaymondLeigh:如果您觉得本文为您提供了结局思路或解决了您的实际问题,麻烦您🙏帮忙点赞、收藏、评论、关注一键四连,您的举手之劳将为我写作提供动力源泉!🤞

print('Hello,RaymondLeigh!')  # 每日问候,跟大家问好!

🔥精品框架专栏:Prism专栏 WPF专栏 


🌞精品前端UI设计专栏:MaterialDesign专栏


💾精品后端数据库专栏:SqlServer专栏 EFCore专栏 Socket专栏


💻精品程序开发专栏  VisualStudio专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值