目录
一 上一章回顾
二 引入命名空间
我们在使用系统网络套接字功能前,需要引入套接字命名空间,以便于后续我们调用里面的成员
using System.Net;
using System.Net.Sockets;
三 定义套接字属性
我们定义套接字属性,作为客户端套接字,如下
public Socket socket { get; set; }
四 定义初始化套接字方法
首先定义初始化套接字方法,参数为IP地址、端口号、发送消息
1 开启监听
- 初始化服务器套接字对象,传入参数为IPv4地址簇、流式套接字、TCP\IP协议。
- 初始化IPEndPoint对象,传入参数为IP地址、端口号
2 发送消息
- 将字符串消息转化为字节数组
- 发送消息
3 接受消息
- 定义字节缓冲区
- 调用Socket的Receive()方法,将数据存入字节缓冲区
- 将字节缓冲区信息转化为字符串信息
- 返回字符串信息到调用对象
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!') # 每日问候,跟大家问好!
🌞精品前端UI设计专栏:MaterialDesign专栏
💾精品后端数据库专栏:SqlServer专栏 EFCore专栏 Socket专栏
💻精品程序开发专栏 VisualStudio专栏