c#网络通信

来源:互联网 发布:淘宝链接怎么弄 编辑:程序博客网 时间:2024/04/24 13:17


 一:服务器端程序 ( ======10.17=====)

      1.建立服务器端socket
         1)使用Socket类 :

              建立服务器Socket对象:
                    Socket objs=new Socket(参数);
              使用IPEndPoint类设置服务器ip地址和端口号;或使用Dns类
                     IPAddress serip=IPAddress.Parse(ip地址);
                     或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
                     IPEndPoint  objp=new IPEndPoint(serip,端口号);
              使用Socket类的Bind方法设置服务器Socket
                     objs.Bind(objp);   参数为ip地址和端口号
              使用Socket类的Listen方法开始监听等待客户端的链接请求
                     objs.Listen(10); 10为最大客户端链接数;

         2)使用TcpListener类:
              指定服务器ip地址和端口号;
                   IPAddress serip=IPAddress.Parse(ip地址);
                   或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
                   TcpListener tcpl=new TcpListener(serip,端口号);
              使用TcpListener类的Strat()方法开始监听等待客户端的链接请求 
                   tcpl.Start();  
        
          
      2.接受客户端的链接
          1)使用Socket类:
                Socket news=objs.Accept();
                Accept()方法用来接受客户端的链接请求,并建立新的Socket对象,该对象将作为服务端和客户端链接及数据传输的依据;
          2)使用TcpListener类:
                Socket  news=tcpl.AcceptSocket();
                AcceptSocket()方法接受链接请求,并建立新的Socket对象,该对象将作为服务端和客户端链接及数据传输的依据;
                或:
                TcpClient  tcpc=tcpl.AcceptTcpLClient();
                AcceptTcpLClient()方法接受链接请求,并建立新的Socket对象,该对象将作为服务端和客户端链接及数据传输的依据;

      3.接受并发送信息
          1)使用Socket类:
               send()方法:发送数据到已链接的Socket;
               sendTo()方法:发送数据到特定ip;
               Receive()方法:从链接的Socket接受数据;
               ReceiveFrom()方法:从特定的ip接受数据;
          2)使用TcpListener类:
               如果链接是AcceptSocket()获得,则可使用Socket类的接收方法;
               如果链接是AcceptTcpLClient()获得,则使用TcpClient类的GetStream()方法取得服务端的输入输出流NetworkStream;
                   public NetworkStream GetStream();
                   然后就可以使用该类的方法来处理数据的发送和接受了;
                   Read()方法;
                   ReadByte()方法;
                   Write();
                   WriteByte();
                   Close();  关闭流

      4.关闭链接
           1)使用Socket类:
                 Close();
                 为避免链接在关闭前,仍在进程数据的操作,使用该方法暂停数据的发送和接受操作
                 ShutDown();
           2)使用TcpListener类:
                Stop();

 二:客户端程序  ( ======10.18=====)
        
      1.建立客户端socket
           1) 使用Socket类:
                建立客户端socket对象:
                 Socket objC=new Socket(参数);
                使用IPEndPoint类设置服务器ip地址和端口号;或使用Dns类
                     IPAddress serip=IPAddress.Parse(ip地址);
                     或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
                     IPEndPoint  objp=new IPEndPoint(serip,端口号);
                 
           2)使用TcpClient类:
                TcpClient tcpl=new TcpClient();
                 指定服务器ip地址和端口号;
                  IPAddress serip=IPAddress.Parse(ip地址);
                    或: IPAddress serip=Dns.Resolve(Dns.GetHostName()).AddressList[0];
                  IPEndPoint tcpP=new IPEndPoint(serip,端口号);

                
      2.连接到服务器
            1) 使用socket类:
                  objC.Connect(objp); 参数是IPEndPoint类指定的服务器的ip和侦听端口号;
            2)使用TcpClient类:
                  tcpl.Connect(tcpP);
      3.接受并发送信息

             1)使用socket类:
               send()方法:发送数据到已链接的Socket;
               sendTo()方法:发送数据到特定ip;
               Receive()方法:从链接的Socket接受数据;
               ReceiveFrom()方法:从特定的ip接受数据;

             2)使用TcpClient类:
               使用TcpClient类的GetStream()方法取得客户端的输入输出流NetworkStream;
                   public NetworkStream GetStream();
                   然后就可以使用该类的方法来处理数据的发送和接受了;
                   Read()方法;
                   ReadByte()方法;
                   Write();
                   WriteByte();
                   Close();  关闭流
              
      4.关闭链接
             1)使用socket类:
                   暂停客户端socket上数据的传送操作;
                     Shutdown(Send/Receive/Both);
                   关闭客户端链接:
                     Close();
             2)使用TcpClient类:
                   Close();

 

 


======================================C#收发邮件======================================


邮件协议:
     SMTP (Simple Mail Transfer Protocol) : 简单邮件协议 用于发送邮件
     POP3 (Post Office Protocol version 3) :邮局协议(第三版) 用于接收邮件
     IMAP4 (Internet Mail Access Protocol 4): 用于接收邮件

 
原创粉丝点击