现在只是学了一点C#的皮毛,所以接触的较多的是用visual studio建立的控制台应用程序,因此,采用的是在vs平台下的控制台项目编写的C#socket通信代码。
首先要明白,云服务器,不是多么难懂的东西,它本质上就是一台放在远处,并且一直在运行的计算机。Socket通信既然可以实现两台(甚至是多台)计算机之间的通信,那么当然也可以实现本地计算机与云服务器的连接。这里,我是用的是腾讯云提供的1元学生惠的windows系统的云服务器,因为对于windows系统比较熟悉,所以采用的是windows系统。 其实,我也一直在想,是不是应该学习一下linux系统,看了看,实在是不知从何下手,如果有时间,真的想学一下linux。
socket通信的代码,网上有很多,可以直接借鉴过来,只要懂一点程序,看懂代码应该不难。重要的是要把代码粘贴或者手敲到控制台中,这样可以通过实际运行,一步步调试看懂代码的具体含义,注意,在运行代码时,要先运行服务器端代码,再启动客户端代码,顺序不能颠倒。运行服务器端代码,socket套接字会监听服务器端的某端口(端口号自己设定),等待客户端的连接,建立连接后,再通过send() receive()方法进行客户端与服务器端的数据传送,服务器、客户端都可以收发数据。一般来说,都是通过字节数组的形式进行接收数据,这里就又要求解码与编码了。我用的是在服务器端先将数据转换为string类型,再转换为byte数组,发送到客户端,客户端接收字节数组后,再解码成string类型,这样不会出现格式错误、不能正常显示的问题。
在学习代码时,我很迷惑的是,为什么查到的所有代码中,写的地址都是127.0.0.1,我明白socket通信中,地址必须写服务器端地址,这样客户端才知道是要连接哪个服务器。后来明白,127.0.0.1是代表系统的回送地址,也就是用于在本机测试,编写的Socket通信代码是否能成功连接并进行数据传送,测试成功后,可以把服务器端应用程序(.exe文件 可在projects中找到)放到你想放的服务器中,但是注意地址不能再写127.0.0.1 而是要写成你服务器端的ip地址,云服务器的ip地址,就是你购买云服务器后告诉你的公网ip,例如,我的是139.199.22.*** 然后按之前的顺序,先运行服务器端代码,再运行客户端代码。
(在Visual Studio中,如何同时运行两个或多个项目? 运行一个之后,在另一个想要运行的项目右击项目名--->启动新实例)