用 C# 写 TCP socket 连接
来源:互联网 发布:zookeeper java开发 编辑:程序博客网 时间:2024/06/06 02:25
第一次用 C# 写 TCP 连接,求指点
和同学合作完成的期中project
最终是完成了一个聊天室
首先利用封装好的 Windows.Networking.Sockets.StreamSocket 生产我的 clientsocket
通过后端给定的IP地址以及监听端口实现TCP连接
注意的是socket端要实现单例模式,因为用户的所有状态都是记录在 clientsocket 类里面,如果每次页面跳转都重新生成一次 clientsocket 很容易产生混乱。
完成第一步之后,实现了前端和后端的连接之后就要实现监听了
对于前端事件,我是通过委托和事件来实现,通过后盾接受的消息触发事件,然后把参数传递,具体的实现再在前端写,达到修改前端的目的,实现和后端的交流
主要的事件包括
1 用户登录和注册状态
2 用户聊天接受、发送 - 文字、图片
3 用户修改图像
4 用户进入、退出房间
5 用户所在房间进来、退出了某个用户
规定socket端和后端通过json格式进行通信
主要就是 json 里面分为系统消息(登录、获取房间用户列表等),聊天信息,以及图片传输。
因为所有协议都是自己定的,所以比较复杂,也是因人而异的,就不仔细说了
如果没有图片传输,那么socket本来是很简单的,网上随便搜的直接通过这种StreamWriter的WriteLineAsync当成字符串输出后台就可以收到了。
但是当我们决定加入了图片处理时就复杂多了,图片的传输不能直接当成字符串处理,于是我们定义先发送一段json信息,表示接下来要传输图片,以及图片转成二进制的大小,然后紧接着就把图片转成二进制发送过去,同理接受图片。
其中的 Imgbytes 就是我接受回来的图像的二进制格式
后面的发生事件就是规定的协议,可以忽略,并且通过isFile 判断是否在读文件,当时考虑的不止传输图片,但是由于时间关系没有实现。
前端和socket交互就说这么多,后端的有空再码上来~
- 用 C# 写 TCP socket 连接
- C# Socket TCP通信,连接服务器
- C#中Socket 和 Tcp 连接的区别
- socket中TCP连接
- TCP socket 长连接
- tcp/udp socket连接
- TCP、HTTP、SOCKET连接
- TCP面向连接Socket
- c# tcp socket 通信
- Socket Tcp C#
- C# socket TCP 异步
- TCP连接、Http连接与Socket连接
- TCP连接、Http连接与Socket连接
- TCP连接、Http连接与Socket连接
- TCP连接、Http连接与Socket连接
- TCP连接、Http连接与Socket连接
- 写基于TCP/IP多线程的是抛出Socket连接异常
- TCP的socket连接示例
- Python的switch方法
- R语言多线程运算(解决R循环慢的问题)
- CashRegSys
- mave工程自学初探
- oracle 多表查询
- 用 C# 写 TCP socket 连接
- 开发中用到的正则表达式
- 在vs2017中如何配置opengl
- 洛谷 P1131 [ZJOI2007]时态同步
- 获取数组中超过一半数量的数值
- 徒劳的择校——小学择校的科学分析
- vue系列之动态路由【原创】
- 673. Number of Longest Increasing Subsequence
- 语音识别工具kaldi在linux环境下的安装步骤