C#网络编程第一天

xiaoxiao2024-07-23  33

掌握一门语言,我一般从以下几个方面入手:

网络编程。数据库的连接。多线程。Web开发(如果流行的话)。

其实严格说起来,这些特性不是一门“语言”的特性,而更像这门语言的“生态”的特性。

网络和数据库是必须要了解的;

多线程,如果没有多线程,世界真的很不美好。哪怕是像Python那样的伪多线程也好啊。

Web开发。事实上我们的程序有时候必须要有GUI。但开发GUI真的是一件让我心烦意乱的事情。如果是CS模式中ClientGUI,更让人难以忍受。所以我宁愿选择Web这类BS的开发模式,还可以选用Flex来增强用户体验。

其实这些的前提在于一个熟练的程序员,对主流高级语言的特性和必须的内置工具应该了然。依我愚见,各类语言我非就是把ifwhilefor,一些常用的util类,拼凑一下。如果能合理的运用一些设计模式就更好了。如果对工业应用中可能遇到的常用问题都考虑到,并尝试挖掘该语言中解决这类问题的代码(各类解决方式的思想常常是一致的),就更靠谱了。

申明一下,一家之言,针对初中级选手,高手不要拍我。

有个例外就是在OO或者函数式语言之间的切换可能不会这么轻松。

我个人最熟悉的还是Java,故而在试图玩弄Erlang的时候险些被玩弄。幸亏以前在Python中接触到一些函数式语言的特性,才没有死的太难看。

今天就看了一下C#的网络编程。

 

MSDN中有一个关于Socket的示例,功能是抓取给定host的网页源码。

 

            // Get host related information.

            hostEntry = Dns.GetHostEntry(server);

 

            foreach (IPAddress address in hostEntry.AddressList)

            {

                IPEndPoint ipe = new IPEndPoint(address, port);

                Socket tempSocket =

                    new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

 

                tempSocket.Connect(ipe);

 

                if (tempSocket.Connected)

                {

                    s = tempSocket;

                    break;

                }

                else

                {

                    continue;

                }

            }

 

首先msDNS得到给定DNSIP,继而将ipport封装成IPEndPoint,并以此来Connect。稍后就可以开始Send数据balabala

略做修改,如果直接传入的就是ip,则有

 

            IPAddress ip = IPAddress.Parse(server);

 

继而可以封装成IPEndPoint

 

下一步就写个完整的C/S程序吧。

 

有个问题,为什么我在C#解决方案中不能写多个Main并选择性运行?

转载请注明原文地址: https://www.6miu.com/read-5017068.html

最新回复(0)