0000duck / WinForms_TCP_Demo

TCP 服务器和客户端的 Windows 窗体应用程序(.NET Framework)演示

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🌐 WinForms_TCP_Demo

Windows 推荐环境

Demo 使用

本 Demo 与普通的 TCP 服务端和客户端使用并无区别。服务端配置自己的 IP 地址和端口号并开始监听;客户端匹配服务端的 IP 地址和端口号连接即可。建立连接后,双方仅可以互相发送文本消息。

本 Demo 主要有两点不一样的地方:

📌 不同点一

首先,双方的数据编解码方式是有要求的:

  1. 默认情况下文本数据通过 UTF-8 编解码即可直接打包/解析;
    SendDirectly
  2. 此外还有一种方式,即为每个数据包添加一个四字节包头,包头用于表征包体的长度(字节数),这种方式是防止 TCP 粘包的一种办法
    SendWithHeader

相关源码可以参考 DataProcessing 类。

📌 不同点二

Demo 中的 TCP 服务端和客户端都有「快捷消息栏」。

快捷消息
指可以通过下拉框快速选择并发送出去的消息。这在需要频繁发送某些重复消息的场合十分有用,省去了用户多次重复编辑的麻烦。并且快捷消息并不会随着程序退出而丢失,在下次启动程序后,已有的快捷消息会仍然存在。
添加快捷消息
在 TCP 服务端,您可以通过首页「快捷消息栏」中的 "+" 号按钮新增一个快捷消息
AddQuickMsgInServer

在 TCP 客户端,您可以通过「快捷消息栏」中的 "+" 号按钮新增一个快捷消息
AddQuickMsgInClient
快捷消息的格式
快捷消息分为“快捷消息名称”和“快捷消息内容”。其中快捷消息名称就是快捷消息栏中下拉框内显示的名称;而快捷消息内容,顾名思义就是消息的具体内容啦:
QuickMsgFormat
快捷消息的保存位置
通过上面的信息我们已经了解到“快捷消息不会随着程序退出而丢失”。为了做到这一点,实际上快捷消息是保存在文件当中的。文件默认被保存在项目的当前工作目录下,一个名为 "QuickMessage.json" 的文件:
QuickMsgFileSavePath
删除已有的快捷消息
目前,Demo 并没有提供删除快捷消息的功能。有需求删除某些快捷消息的同学,需要自行前往保存快捷消息的文件当中手动删除(*.json 文件可直接通过记事本或其他文本编辑程序打开编辑)。默认情况下,一项快捷消息占用一行内容:
EditQuickMsgFile

使用示例

  1. ✅ 消息的发送与接收:
    SendAndReceive
  2. ✅ 服务端广播发送消息:
    BroadcastSend
  3. ✅ 添加快捷消息:
    AddQuickMsg
  4. ✅ 发送快捷消息:
    SendQuickMsg
  5. ✅ 部分选项设置可根据自身习惯进行配置(Release v 0.1.2 及以上):
    Option

About

TCP 服务器和客户端的 Windows 窗体应用程序(.NET Framework)演示

License:MIT License


Languages

Language:C# 100.0%