爱问知识人 爱问教育 医院库

只有5个客户端的c#的网络编程

首页

只有5个客户端的c#的网络编程

           
我要做一个只有5个客户端的网络编程软件,客户端用c#,服务端用c ,我不知道用什么网络模型,尤其是客户端在给服务端发不同的服务消息,服务端怎么判断并分类处理?要不要用线程啊,有不有完整的项目代码,我是新手,不大会!

提交回答

全部答案

    2018-05-10 04:55:37
  •   模型选择:         网络模型的选择需要衡量开发成本、项目的压力、业务需求等,按照你说的只有5个客户端,那么即使跑视频压力也不大,所以更多要考虑的是业务需求和开发成本。         看你的业务需求,5个客户端是并行的还是串行的,一般来说,这种的业务都需并行的,那么久考虑下业务处理时间了,每个业务需要处理的耗时是多少,这个决定是否可以用非阻塞。
       socket按照开发成本可大致分为 1多线程---》2回调---》3完成端口 最简单的就是直接跑跑多线程了,这种的开发周期最短,不过性能也最差,占用资源较多,第二种的是回调,这种开发较快,占用资源也比较少,基本能满足你的需求。
      至于完成端口这东西性能最优,开发成本也最大,如果不是要秀技术,不推荐在这个项目上用。 判断分类处理: 在socket通讯中,所有的操作都是根据报文标识来做对应操作的,不必纠结于怎么判断并分类处理,一般来说一条tcp的协议包含以下部分 报头 长度 命令关键字 主体内容 校验 报尾 根据具体的业务又可以增加或者删减部分内容,这个报文是完全由你自己定义的,而在程序中的做法是:
    1、首先受到网络数据的时候存入一个byte[]中,也就是socket缓冲区,收到数据最初是存在这里的,我们的操作也是从这个缓冲区取数据进行处理。
      
    2、取出数据后使用报文解析器解析报文,报文解析器是一个自定义的所有用户共用的类或方法,他的作用就是将byte[]转为协议文本,然后判断协议的完整性,(有时候会再判断协议的准确性,也就是判断校验位)然后根据报文中的命令关键字去调用对应的处理方法。
      
    3、在处理方法中就可以对收到的协议数据做相应的处理了,业务基本是封装在这部分的。 这是最基本的一个报文处理过程,一般我们会根据项目情况做一些调整,调整的话上面的处理逻辑也不会更改,我比较经常用到的是命令模式和生产者消费者模式来处理报文。
      

    我***

    2018-05-10 04:55:37

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):