网络编程(二)--基本操作

服务器端:服务器端主要完成开启对端口的侦听,这就像为计算机打开了一个"门",所有向这个“门”发送的请求都会被系统接收。在c#中可以通过以下步骤完成。

1)首先使用本机IP地址和端口号创建一个Sockets.TcpListener类型的实例,

2)   然后在该实例上调用Start()方法。从而开启对指定端口的侦听。


服务端对端口进行侦听

代码如下:

class ServerClient

{

      static void Main(string[] args)        

           {

                     Console.WriteLine("Server is running....");

                      IPAddress ip=new IPAdress(new byte[] {192.168.0.100}); //本机计算机的IP地址。

                      TcpListener listener=new TcpListener(ip,8500);

                      listener.Start(); //开始监听

                     Console.WriteLine("Start Listening.......");

                     Console.WriteLine("\n\n输入\"Q\"键退出。);

                     do

                      {

                                   key=Console.ReadKey(true).Key;

                       }while(key!=ConsoleKey.Q);

           }

}

获取IPAdderss的另外几种常用方法:

IPAddress ip=IPAddress.Parse("192.168.0.100");

IPAddress ip=Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];


客户端与服务端连接

1.单一客户端与服务器端连接

服务端开始对端口侦听以后,便可以创建客户端与其连接。这一步是通过在客户端创建一个TcpClient的类型实例完成的,每创建一个新的TcpClient便相当于创建一个新的套接字Socket与服务端通信。TcpClient类不过世对Socket进行了一个包装。在创建TcpClient类型实例时,可以指定远程服务器的地址和端口号。这样在创建的同时,就会像远程服务端发送连接请求,一旦成功,则两者间的连接就建立起来了。也可以使用重载的无参数构造函数创建对象,然后再调用Connect()方法,在Connect方法中传入远程服务器地址和端口号来与服务器建立连接。

      需要注意的是不管事使用参数的构造函数与服务器连接,还是通过Connect()方法与服务器建立连接,都是同步方法(或者说是阻塞的)。也就是说:客户端与服务器端连接成功,方法返回,或者服务端不存在之前,无法继续后续的操作。这里先讨论同步的,后面再看异步的

     class Client

     {

             static void main(string[] args)

              {

                  Console.WriteLine("Client is running");

                   TcpClient client=new TcpClient();

                      try

                        {      client.Connect(IPAddress.Parse("192.168.0.100"),8500);     }

                       catch(Exception ex){

                                 Console.WriteLine(ex.Message);

                                  return ;

                             }

                       //打印连接到的服务端信息

                      Console.WriteLine("Server Connected! Local:{0}--> Server:{1}",client.Client.LocalEndPont,client.Client.RemoteEndPoint);

               }

     }


2.多个客户端与服务端连接

多个客户端与服务端连接代码大体相同,只不过需要创建多个TcpClient而已。此处就不上代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值