2.3 套接字
套接字是支持TCP协议的操作基本单元,可以用来不同主机之间的相互通信,在一个双方可以进行通信的例子中,保存了本机跟对方的IP地址跟端口,也保存双方的通信协议。套接字可以用C#的socket类来实现。
但是为了简化编程的繁琐,C#又对套接字进行了封装,存在两个很重要的类,TcpClient跟Tcplistener,TcpClient提供本机跟远程的链接信息,TcpListener用来提供监听客户链接请求。
2.4 网络流
它是提供网络的基础数据流,在使用它的时候必须存在socket连接,它有两个主要的类,分别是StreamWriter跟StreamReader,获取网络流有两种方式,分别是用TcpClient跟Socket。有两个主类用来接收跟发送NetworkStream数据,StreamWriter负责发送数据,StreamReader负责接收数据。来.自/751论|文-网www.751com.cn/
3 概要设计
3.1 设计思路
服务器端开始监听数据,每个客户端根据服务器的域名跟端口建立TcpClient对象,然后客户端输入对应的昵称点击请求访问服务器,服务器具有TcpListener对象,用方法AcceptTcpClient()监听TcpClient对象,每收到连接请求后,就创建一个线程来跟这个客户端连接,通过networkstram传送数据,不断地接收这个客户端发来的消息,有消息会发送到相应的客户端。客户端连接到服务器后,客户端会接收到服务器端发来相应的初始化界面相关的数据,比如最初需要接收服务器发来的桌数,可以动态创建所需的游戏桌,接着客户端不断地有操作比如鼠标事件相应的就会给数据传送到服务器端,服务器做处理,反馈给本玩家以及其他玩家。点击桌可以进入游戏后,初始化棋盘,双方可以对弈,并具有聊天功能,谁先给对方将(帅)吃掉就取得胜利,游戏结束。发送的数据采用逗号相隔的方式,第一个逗号之前代表标识符,说明做什么类型的处理,后面的数据都是相应的参数,客户端或者服务器端接受到相应的数据就会进行处理。另外,所有的游戏运行数据都保存在服务器端的数组里。