笔者做毕设的时候就用C#做的服务器与客户端进行通信,当时看的是罗培羽《Unity3D网络游戏实战》,过程磕磕绊绊,不过也成功搭建起来了,本系列文章是为了方便笔者自己开发小游戏而写出来的通用架子,采用TCP socket异步通信,具体内容还是要根据游戏来的,笔者对于网络也不是特别的了解,如果我的文章能帮上你,不胜荣幸
后面会出一系列教程文章,客户端采用QFramework框架,服务端就是这个啦,做一些小游戏或者棋牌~
1.了解下IP和端口号:
2.TCP三次握手与四次挥手
3.服务端和客户端间的通信流程 :
服务器端:
第一步:创建一个用于监听连接的Socket对像;
第二步:用指定的端口号和服务器的ip建立一个EndPoint对像;
第三步:用socket对像的Bind()方法绑定EndPoint;
第四步:用socket对像的Listen()方法开始监听;
第五步:接收到客户端的连接,用socket对像的Accept()方法创建一个新的用于和客户端进行通信的socket对像;
第六步:通信结束后一定记得关闭socket;
客户端:
第一步:建立一个Socket对像;
第二步:用指定的端口号和服务器的ip建立一个EndPoint对像;
第三步:用socket对像的Connect()方法以上面建立的EndPoint对像做为参数,向服务器发出连接请求;
第四步:如果连接成功,就用socket对像的Send()方法向服务器发送信息;
第五步:用socket对像的Receive()方法接受服务器发来的信息 ;
第六步:通信结束后一定记得关闭socket;
4.简单介绍一下会用到的类
IPEndPoint : 绑定的时候会用到这个类,初始化参数为 : IP与port字符串
Socket : 连接/监听/接收数据都需要这个对象
MySqlConnection : 与数据库通信的类
参考:
C# socket学习--IPAddress、IPEndPoint、DNS