zoukankan      html  css  js  c++  java
  • C#进行Socket通信编程之一

    关于Socket编程的相关资料(含实例)在网上多如牛毛,而我写这篇文章的初衷仅仅是为了记录自己的一些心得体会。  
    
       Socket提供了这样一个接口,可以方便地使程序员通过其来发送和接收网络上的数据。在利用Socket编程的时候,首先需要使用指定的地址族(如常见的IPV4或IPV6)、套接字类型(如Stream、Dgram等)和协议(如Tcp、Udp等)初始化Socket类的新实例,然后需要与IP地址和端口绑定。这些都是使用Socket编程的最基本条件。     Socket编程通常分服务器和客户端,服务器端负责接收客户端请求并处理该请求,必须具备多客户端处理能力,在性能要求、稳定性等方面要求较高,客户端在连接上服务器后向服务器发送数据或接收来自服务器的数据,之后进行处理,相对简单。 
    
        在服务器端,以TCP通信为例,Socket实现网络通信的基本思路是:  
    
         1、建立流式套接字并返回套接字号,如:m_serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  
    
         2、将套接字与本地地址相连,如:m_serverSocket.Bind(m_localEndPoint); 
    
         3、开始侦听客户端连接请求  
    
         4、等待客户端连接   
    
         5、客户端与服务器建立连接,得到新的套接字,如clientSocket = m_serverSocket.Accept();    
    
         6、在套接字上读写数据,直到完成数据交换  
    
         7、与指定客户端的服务完成后,关闭该客户端的套接字   
    
         8、关闭服务器,如m_serverSocket.Close();   
    
        其中在服务器运行期间,第4到第7步是一个循环的过程,每一个客户端会话进来都走相同的处理模式。
    
     
    
        在客户端,也以TCP通信为例,Socket实现网络通信的基本思路是: 
    
        1、建立流式套接字并返回套接字号,如:m_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);    
    
        2、将套接字与远程主机(即服务器)进行连接,如:m_serverEndPoint = new IPEndPoint(IPAddress.Parse(serverIP), serverPort);m_clientSocket.Connect(m_serverEndPoint);   
    
        3、如果连接成功,则开始接收来自服务器端的数据,如: if (m_clientSocket.Connected) {         m_clientSocket.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null); }   
    
        4、根据需要,向服务器发送数据,如:m_clientSocket.Send(m_sendBuffer, m_sendBuffer.Length, SocketFlags.None);    
    
        5、关闭套接字
    
     
  • 相关阅读:
    sharepoint tip (视图)
    how to use mstsclib
    Why I Love My Virtual PCs
    科普 | 什么是去中心化自治组织(DAO)
    毕业生的商业软件开发之路 C#基本语法C#代码模块逻辑框架
    文本编辑器中文字断行及排版算法研究
    [毕业生的商业软件开发之路]C#异常处理
    毕业生的商业软件开发之路关于企业培训
    开源C#2.0体温单程序
    论电子病历文本编辑器
  • 原文地址:https://www.cnblogs.com/rwh871212/p/4654887.html
Copyright © 2011-2022 走看看